এক্সএমএলে কোনও সিডিএটিএ প্রান্ত টোকেন এড়ানোর কোনও উপায় আছে কি?


129

আমি ভাবছিলাম যে ]]>কোনও এক্সএমএল ডকুমেন্টে সিডিএটিএ বিভাগের মধ্যে কোনও সিডিএটি এন্ড টোকেন ( ) এড়ানোর কোনও উপায় আছে কিনা ? অথবা, আরও সাধারণভাবে, যদি কোনও সিডিএটিএর মধ্যে ব্যবহারের জন্য যদি কিছু পালানোর ক্রম থাকে তবে (তবে এটি উপস্থিত থাকলে, আমার ধারণা, সম্ভবত যেভাবেই হোক টোকেনগুলি শুরু করা বা শেষ করতে হবে) sense

মূলত, আপনি কি কোনও সিডিএটিএতে এমবেড করা শুরু করতে পারেন বা শেষ টোকেন রাখতে পারেন এবং পার্সারকে ব্যাখ্যা করতে না গিয়ে এটি কেবল অন্য একটি চরিত্রের অনুক্রম হিসাবে বিবেচনা করতে পারেন।

সম্ভবত, আপনি নিজের এক্সএমএল কাঠামো বা আপনার কোডটি যদি চেষ্টা করে দেখতে পেলেন তবে আপনাকে কেবল রিফ্যাক্টর করা উচিত, তবে আমি গত 3 বছর বা তার বেশি সময় ধরে প্রতিদিনের ভিত্তিতে এক্সএমএল নিয়ে কাজ করছি এবং আমার কখনও এই সমস্যা হয়নি, আমি ভাবছিলাম যে এটি সম্ভব কিনা। শুধু আউট কৌতুহল.

সম্পাদনা:

এইচটিএমএল এনকোডিং ব্যবহার করা ছাড়া অন্য ...


4
প্রথমে, আমি উত্তরটিকে যথাযথ হিসাবে গ্রহণ করি তবে দ্রষ্টব্য: এম্বেড থাকা সিডিএন্ড হিসাবে পার্স করা হবে না তা নিশ্চিত করার জন্য সিডিটা-র >মতো কাউকে কোনও এনকোডিং থেকে বিরত >রাখে ]]>না। এর সহজ অর্থ হ'ল এটি অপ্রত্যাশিত এবং এটি &অবশ্যই &প্রথমে এনকোড করা উচিত যাতে ডেটা সঠিকভাবে ডিকোড করা যায়। দস্তাবেজের ব্যবহারকারীদের অবশ্যই এই সিডিটাটি ডিকোড করতে হবে। এটি কোনও শোনার মতো নয় যেহেতু সিডিটা উদ্দেশ্যটির অংশটি এমন একটি সামগ্রী থাকতে হয় যা কোনও নির্দিষ্ট গ্রাহক কীভাবে পরিচালনা করতে পারে তা বোঝে। এই জাতীয় সিডিটা কোনও জেনেরিক গ্রাহক দ্বারা সঠিকভাবে ব্যাখ্যা করার আশা করা যায় না।
নিক

1
@ নিক্স, সিডিএটিএ পাঠ্য নোডের বিষয়বস্তু ঘোষণার জন্য কেবল একটি স্পষ্ট উপায় সরবরাহ করে যেমন ভাষার টোকেনগুলি (অন্যান্য]]] পার্স না করে। এটি & gt; এর মতো সত্তা রেফারেন্সগুলি বিশেষত প্রসারিত করে না; এই কারণে, সুতরাং একটি সিডিএটিএ ব্লকে, এর অর্থ কেবল এই চারটি অক্ষর, '>' নয়। এটিকে দৃষ্টিকোণে রাখার জন্য: এক্সএমএল স্পেসে, সমস্ত পাঠ্য সামগ্রীকে কেবল এই সিকোয়েন্সগুলি ("চরিত্রের ডেটা") নয়, "সিডিটা" বলা হয়। এছাড়াও এটি নির্দিষ্ট গ্রাহক এজেন্টদের সম্পর্কে নয়। (যেমন একটি জিনিস থাকবেই যদিও আছে - প্রক্রিয়াকরণের নির্দেশাবলী () <লক্ষ্য নির্দেশ?>।
সেমিকোলন

(আমার যোগ করা উচিত, এমনকি যদি এই ধরণের জিনিস নোডের মূল অভিযানের বিপরীতে চলে তবে এক্সএমএলের সাথে দীর্ঘ ও উত্তেজনাপূর্ণ যুদ্ধে সবই ন্যায্য I ]]> আসলে সেই উদ্দেশ্যে ডিজাইন করা হয়নি))
সেমিকোলন

1
@ সিমিকলন কোনও কিছুরCDATA অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছিল : এগুলি অক্ষরযুক্ত পাঠ্যগুলির ব্লকগুলি থেকে বাঁচতে ব্যবহার করা হয় যা অন্যথায় মার্কআপ হিসাবে স্বীকৃত হবে যা এটি মার্কআপ হিসাবেও বোঝায় । তবে, বাস্তবে, আপনাকে বোঝানো ডাবল এনকোডিংয়ের দরকার নেই। এ এর মধ্যে একটি এনকোডিংয়ের একটি গ্রহণযোগ্য উপায় । CDATA]]&gt;CDEndCDATA
নিক্স

সত্য, আপনার ডাবল এনকোডিংয়ের প্রয়োজন হবে না - তবে আপনার এখনও এজেন্টের বিশেষ জ্ঞান অর্জন করতে হবে কারণ পার্সার পার্স করতে পারবেন না & gt; হিসাবে>। যদিও আপনি এর অর্থ কি, আমি মনে করি? পার্স করার পরে আপনি যেভাবে উপযুক্ত দেখতে পাচ্ছেন সেগুলি প্রতিস্থাপন করতে পারেন?
সেমিকোলন

উত্তর:


141

স্পষ্টতই, এই প্রশ্নটি খাঁটি একাডেমিক। ভাগ্যক্রমে, এর একটি খুব নির্দিষ্ট উত্তর রয়েছে।

আপনি সিডিএটিএর শেষ ক্রমটি এড়াতে পারবেন না। এক্সএমএল স্পেসিফিকেশনের 20 উত্পাদন বিধি যথেষ্ট পরিষ্কার:

[20]    CData      ::=      (Char* - (Char* ']]>' Char*))

সম্পাদনা: এই পণ্যের নিয়মটির আক্ষরিক অর্থ "" একটি সিডিটা বিভাগে আপনার পছন্দসই কিছু থাকতে পারে ']]>' ব্যতিক্রম।

এডিআইটি 2: একই বিভাগটিও পড়ে:

একটি সিডিএটিএ বিভাগে কেবলমাত্র সিডিএন্ড স্ট্রিং মার্কআপ হিসাবে স্বীকৃত, যাতে বাম কোণে বন্ধনী এবং এম্পারস্যান্ডগুলি তাদের আক্ষরিক আকারে ঘটতে পারে; তাদের " &lt;" এবং " &amp;" ব্যবহার করে পালানো দরকার (এবং পারে না) । সিডিএটিএ বিভাগগুলি বাসা বাঁধতে পারে না।

অন্য কথায়, সত্তা রেফারেন্স, মার্কআপ বা ব্যাখ্যামূলক বাক্য বিন্যাসের অন্য কোনও রূপ ব্যবহার করা সম্ভব নয়। সিডিএটিএ বিভাগে কেবলমাত্র বিশদযুক্ত পাঠ্যটি রয়েছে ]]>এবং এটি বিভাগটি সমাপ্ত করে।

তাই পালানো সম্ভব নয় ]]> সিডিএটিএ বিভাগে ।

সম্পাদনা 3: একই বিভাগ পড়ে:

2.7 সিডিএটিএ বিভাগসমূহ

[সংজ্ঞা: সিডিএটিএ বিভাগগুলি বর্ণের ডেটা যেখানেই ঘটতে পারে ঘটতে পারে; এগুলি অক্ষরযুক্ত পাঠ্যের ব্লকগুলি এড়াতে ব্যবহৃত হয় যা অন্যথায় মার্কআপ হিসাবে স্বীকৃত হবে। সিডিএটিএ বিভাগগুলি "<! [সিডিএটিএ [" এবং স্ট্রিং ""]] "" দিয়ে শুরু হয়:]

তারপরে একটি সিডিএটি বিভাগ থাকতে পারে যেখানেই কোনও সিডিএটিএ বিভাগের জায়গায় একাধিক সংলগ্ন সিডিএটিএ বিভাগগুলি সহ চরিত্রের ডেটা ঘটতে পারে। এটি ]]>টোকেনকে বিভক্ত করা এবং এর দুটি অংশ সংলগ্ন সিডিএটিএ বিভাগগুলিতে স্থাপন করা সম্ভব করে।

উদা:

<![CDATA[Certain tokens like ]]> can be difficult and <invalid>]]> 

হিসাবে লেখা উচিত

<![CDATA[Certain tokens like ]]]]><![CDATA[> can be difficult and <valid>]]> 

1
প্রকৃতপক্ষে. ঠিক আছে, আমি কোন একাডেমিক ধরণের নই তবে আমি যেমন প্রশ্নে বলেছিলাম, আমি এই সম্পর্কে কেবল কৌতূহলী। সত্যি কথা বলতে কি, আমি এই বিষয়ে আপনার কথাটি গ্রহণ করব, কারণ নিয়মের জন্য ব্যবহৃত বাক্য গঠনটি আমি সবেমাত্র বোঝাতে পারি। আপনার উত্তরের জন্য ধন্যবাদ.
হুয়ান পাবলো ক্যালিফোানো

39
এটি কোন একাডেমিক প্রশ্ন নয়। কোনও ব্লগ পোস্টের আরএসএস ফিডের কথা চিন্তা করুন যাতে সিডিএটিএ সম্পর্কে আলোচনা রয়েছে।
usr ডিরেক্টরির

4
আমি অর্থে "একাডেমিক" বলতে চাইছিলাম: "আলোচনা করা আকর্ষণীয়, তবে ব্যবহারিক ব্যবহার ছাড়াই"। সাধারণত, সিডিএটিএটি দরকারী নয়, এটি এক্সএমএল পাঠকে সিরিয়ালাইজ করার একমাত্র উপায় এবং এটি চরিত্র সত্তা & lt; ব্যবহার করে বিশেষ অক্ষরগুলি পালনের সমার্থক সমান; & gt; এবং & quot ;. অক্ষর সত্তা হ'ল সরল, সবচেয়ে মজবুত এবং সর্বাধিক সাধারণ সমাধান, সুতরাং এটি সিডিটিএ বিভাগগুলির পরিবর্তে ব্যবহার করুন। যদি আপনি একটি সঠিক এক্সএমএল লাইব্রেরি ব্যবহার করেন (এক্সএমএল স্ট্রিংয়ের বাইরে তৈরি করার পরিবর্তে) আপনার এমনকি এটি সম্পর্কে ভাবতে হবে না।
ddaa

5
আমি কেবল এটির দ্বারা দংশিত হয়েছি কারণ আমি কয়েকটি সংকুচিত জাভাস্ক্রিপ্টকে একটি <script> ট্যাগে এনকোড করার চেষ্টা করছি: <script>/*<![CDATA[*/javascript goes here/*]]>*/</script>এবং আমার জাভাস্ক্রিপ্টটিতে ঠিক সেই ক্রম অন্তর্ভুক্ত রয়েছে! আমি একাধিক
সিডিএটিএ

3
আমি বাস্তব বিশ্বের অভিজ্ঞতা। উইকিপিডিয়া ডাম্প পড়ার সময় এবং অন্য একটি এক্সএমএল ফাইল লেখার সময় আমি জাতীয় পরিবহন সুরক্ষা বোর্ডের জন্য এই পৃষ্ঠায় এটির মুখোমুখি হয়েছি । এতে ইনফোবক্সে বাজেটের জন্য 100 মিলিয়ন মার্কিন ডলার (2013) ছিল। উত্স এক্সএমএল রয়েছে [[United States dollar|US$]]&gt;100 million (2013)যা [[United States dollar|US$]]>100 million (2013)পাঠক অনুবাদ করেছিলেন এবং লেখক পাঠ্যটি এড়ানোর জন্য সিডিএটিএ ব্যবহার করতে বেছে নিয়েছিলেন এবং ব্যর্থ হয়েছিল।
পল জ্যাকসন

169

গোপন করার জন্য আপনাকে আপনার ডেটা টুকরো টুকরো করতে হবে ]]>

পুরো জিনিসটি এখানে:

<![CDATA[]]]]><![CDATA[>]]>

প্রথমটি <![CDATA[]]]]>আছে ]]। দ্বিতীয়টি <![CDATA[>]]>আছে >


1
আপনার উত্তরের জন্য ধন্যবাদ. আমি বরং ব্যাকস্ল্যাশ সমতুল্য (সি, পিএইচপি, জাভা ইত্যাদির স্ট্রিংগুলির মধ্যে) মতো কিছু খুঁজছিলাম। ডিডিএ-র দ্বারা উদ্ধৃত নিয়ম অনুসারে, মনে হয় এমন কিছু নেই।
হুয়ান পাবলো ক্যালিফোানো

28
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এস্কেপিং কিছুটা অস্পষ্ট শব্দ, তবে এই উত্তরটি অবশ্যই পালানোর আত্মাকে সম্বোধন করে । খুব খারাপ এটি ওপি'র পালানোর সংকীর্ণ ধারণার সাথে খাপ খায় না , যথেচ্ছভাবে কোনও কারণে ব্যাকস্ল্যাশ চরিত্রের জড়িত থাকা প্রয়োজন।
জি-উইজ

5
সুতরাং সংক্ষেপে, ]]>হিসাবে অব্যাহতি ]]]]><![CDATA[>। দৈর্ঘ্যের 5 গুণ ... বাহ! তবে, এটি একটি অস্বাভাবিক ক্রম sequ
ব্রিলিয়ানড

5
5x দৈর্ঘ্য কেবল আনন্দময় নয়, এটি কোডেও অস্বাভাবিক ক্রম নয়, যা সিডিএটিএর প্রধান ব্যবহারের ক্ষেত্র! সংকুচিত জাভাস্ক্রিপ্ট ধরে রাখলে যা শূন্যস্থান সরিয়ে দেয়, আপনি সূচী অনুসারে নামের একটি অ্যারে থেকে নাম দিয়ে কোনও ক্ষেত্র অ্যাক্সেস করতে পারেন, যেমন "যদি (ক্ষেত্র [ক্ষেত্রের নাম [0]]> 3)" এবং এখন আপনাকে এটি "যদি ( ক্ষেত্রগুলি [ক্ষেত্রের নাম [0]]]]> <! [সিডিএটিএ [> 3) ", যা সিডিএটিএকে আরও পাঠযোগ্য, এলএলএল ব্যবহার করার উদ্দেশ্যে পরাস্ত করে। আমি সিডিএটিএ সিনট্যাক্সের সাথে যে আসবে তাকে আমি মৌখিকভাবে চড় মারতে চাই।
ট্রায়ঙ্কো

1
এস্কেপিং, বা আরও সঠিকভাবে, উদ্ধৃতি দেওয়া মানে এমন একটি প্রসঙ্গে কিছু পাঠ্য সন্নিবেশ করা হয়েছে যেখানে কাঁচা পাঠ্যের অর্থ প্রসঙ্গ ছাড়াই। ব্যাকস্ল্যাশগুলির সাথে এর কোনও যোগসূত্র নেই। এবং এই উত্তরটি এড়ানোর বা উদ্ধৃতি পাচ্ছে না কারণ এটির পরিবর্তে দুটি সিডিটিএ বিভাগ তৈরি করে।
ডিডিএ

17

আপনি অব্যাহতি না ]]>কিন্তু আপনি অব্যাহতি >পর ]]সন্নিবেশ করার মাধ্যেমে ]]><![CDATA[সামনে >, শুধু একটি মত এই চিন্তা \সি / জাভা / পিএইচপি / পার্ল স্ট্রিং কিন্তু একটি সামনে শুধুমাত্র প্রয়োজন >এবং একটি পর ]]

BTW,

এস.লোটের উত্তর এটির মতো, কেবল আলাদাভাবে শব্দ করা হয়েছে।


2
আমি এই শব্দটি পছন্দ। :)
ব্রিলিয়ানড

3
এটি বলার এই উপায়টি মানুষকে ভুল ধারণা দেয়। এটি পালাচ্ছে না]]]]><![CDATA[>এর জন্য কিছু জাদুকরী ক্রম নয় ]]>। ডেটা হিসাবে অক্ষর ]]]]>রয়েছে ]]এবং ]]>বর্তমান সিডিএটিএ বিভাগটি শেষ করে। <![CDATA[>একটি নতুন সিডিএটিএ বিভাগ শুরু করে এবং এতে রাখে >। এগুলি আসলে দুটি পৃথক উপাদান এবং কোনও ডিওএম পার্সারের সাথে কাজ করার সময় আলাদা আচরণ করা হবে। আপনার সচেতন হওয়া উচিত এটি করার এই পদ্ধতিটি প্রথম এবং দ্বিতীয় সিডিএটিএ ]]]><![CDATA[]>রাখে ব্যতীত similar পার্থক্য রয়ে গেছে। ]]>
এইডিয়াকাপি

পার্থক্যটি অত্যুক্তিযুক্ত, যেহেতু সিডিএটিএ বিষয়বস্তুকে পালিয়ে যাওয়া পাঠ্যের আক্ষরিক স্প্যান হিসাবে বিবেচনা করা হয়। কেবলমাত্র ডম-এর সাথে জগাখিচুড়ি করার সময় এটি সত্যিই গুরুত্বপূর্ণ, এবং সেই স্তরে আপনি অন্য কোনও অদৃশ্য সীমানা যেমন পাঠ্য, মন্তব্য এবং প্রক্রিয়াকরণের নির্দেশিকা নোডের সাথে কাজ করছেন।
বিজোর

7

এস লটের উত্তর সঠিক: আপনি শেষ ট্যাগটি এনকোড করবেন না, আপনি এটি একাধিক সিডিএটিএ বিভাগে বিভক্ত করেছেন।

বাস্তব বিশ্বে এই সমস্যাটি কীভাবে চালাবেন: একটি এক্সএমএল সম্পাদক ব্যবহার করে একটি এক্সএমএল ডকুমেন্ট তৈরি করুন যা একটি সামগ্রী-পরিচালনা ব্যবস্থাতে খাওয়ানো হবে, সিডিএটিএ বিভাগগুলি সম্পর্কে একটি নিবন্ধ লেখার চেষ্টা করুন। সিডিএটিএ বিভাগে কোড নমুনাগুলি এম্বেড করার আপনার সাধারণ কৌশল আপনাকে এখানে ব্যর্থ করবে। আপনি কল্পনা করতে পারেন আমি কীভাবে এটি শিখেছি।

তবে বেশিরভাগ পরিস্থিতিতে আপনি এটির মুখোমুখি হবেন না এবং এর কারণ: আপনি যদি কোনও এক্সএমএল ডকুমেন্টের পাঠ্যকে একটি এক্সএমএল উপাদানটির বিষয়বস্তু হিসাবে সংরক্ষণ করতে চান (তবে) আপনি সম্ভবত একটি ডিওএম পদ্ধতি ব্যবহার করবেন, যেমন:

XmlElement elm = doc.CreateElement("foo");
elm.InnerText = "<[CDATA[[Is this a problem?]]>";

এবং ডিওএম যথেষ্ট যুক্তিসঙ্গতভাবে <এবং> এড়িয়ে চলে যায়, যার অর্থ আপনি অজান্তে আপনার দস্তাবেজের কোনও সিডিএটিএ অংশটি এম্বেড করেননি।

ওহ, এবং এটি আকর্ষণীয়:

XmlDocument doc = new XmlDocument();

XmlElement elm = doc.CreateElement("doc");
doc.AppendChild(elm);

string data = "<![[CDATA[This is an embedded CDATA section]]>";
XmlCDataSection cdata = doc.CreateCDataSection(data);
elm.AppendChild(cdata);

এটি সম্ভবত। নেট ডোমের একটি আদর্শিকেন্দ্রসি, তবে এটি ব্যতিক্রম ঘটায় না। ব্যতিক্রমটি এখানে ছুঁড়ে যায়:

Console.Write(doc.OuterXml);

আমি অনুমান করেছি যে হুডের নীচে যা ঘটছে তা হ'ল এক্সএমএল ডকুমেন্টটি একটি এক্সএমএল রাইটার ব্যবহার করে তার আউটপুট উত্পাদন করে এবং এক্সএমএমলাইটার এটি লেখার সাথে সাথে সু-গঠনের জন্য পরীক্ষা করে।


ঠিক আছে, আমার প্রায় একটি "বাস্তব জগত" উদাহরণ ছিল। আমি সাধারণত ফ্ল্যাশ থেকে এক্সএমএল লোড করি যাতে সিডিএটিএ বিভাগগুলির মধ্যে এইচটিএমএল মার্কআপ থাকে। আমার মনে হয় এটি থেকে বাঁচার একটি উপায় থাকা কার্যকর হতে পারে। তবে যাইহোক, সেই ক্ষেত্রে, সিডিএটিএ বিষয়বস্তু সাধারণত বৈধ এক্সএইচটিএমএল হয় এবং তাই "বহিরাগত" সিডিএটিএ পুরোপুরি এড়ানো যায়।
হুয়ান পাবলো ক্যালিফোানো

2
সিডিএটিএ প্রায় সর্বদা এড়ানো যায়। আমি দেখতে পেয়েছি যে লোকেরা খুব ঘন ঘন সিডিএটিএর সাথে লড়াই করে তারা বুঝতে পারে না যে তারা সত্যিই কী করার চেষ্টা করছে এবং / অথবা তারা যে প্রযুক্তি ব্যবহার করছে তা কীভাবে কাজ করে।
রবার্ট রসনি

ওহ, আমার আরও যোগ করা উচিত যে আমি সিডিএটিএসের জন্য আমার উত্তরে যে সিএমএসের সুনির্দিষ্ট নির্দেশ দিয়েছিলাম তা হ'ল আমি এটি লিখেছিলাম এবং আমি বুঝতে পারি না যে আমি আসলে কী করার চেষ্টা করছিলাম এবং / বা প্রযুক্তি কীভাবে কাজ করে। আমার সিডিএটিএ ব্যবহার করার দরকার নেই।
রবার্ট রসনি

আপনি যদি নেট ব্যবহার করে থাকেন তবে সিডিএটিএ এড়াতে পারা যায় তার পূর্বের মন্তব্যটি স্পট হয় - কেবল স্ট্রিং হিসাবে সামগ্রীটি লিখুন এবং ফ্রেমওয়ার্কটি বাস্তব জগত থেকে আপনার জন্য সমস্ত পালানোর (এবং পড়া থেকে অব্যাহত) কাজ করবে .... ... xMLStream.WriteStartElement ("আনপ্রসেসড এইচটিএমএল"); xmlStream.WriteString (UnprocessedHtml); xmlStream.WriteEndElement ();
মার্ক মুলিন


3

এখানে আরও একটি মামলা রয়েছে যাতে ]]>পালানো দরকার। ধরুন আমাদের কোনও এক্সএমএল ডকুমেন্টের সিডিএটিএ ব্লকের ভিতরে পুরোপুরি বৈধ এইচটিএমএল ডকুমেন্ট সংরক্ষণ করতে হবে এবং এইচটিএমএল উত্সটির নিজস্ব সিডিএটিএ ব্লক রয়েছে। উদাহরণ স্বরূপ:

<htmlSource><![CDATA[ 
    ... html ...
    <script type="text/javascript">
        /* <![CDATA[ */
        -- some working javascript --
        /* ]]> */
    </script>
    ... html ...
]]></htmlSource>

মন্তব্য করা সিডিএটি প্রত্যয় এটিকে পরিবর্তন করা দরকার:

        /* ]]]]><![CDATA[> *//

যেহেতু একটি এক্সএমএল পার্সার জাভাস্ক্রিপ্ট মন্তব্য ব্লকগুলি পরিচালনা করতে পারে তা জানে না


এটি কোনও বিশেষ ক্ষেত্রে নয়। এখানে এখনও প্রয়োগ ]]>সঙ্গে কেবল প্রতিস্থাপন ]]]]><![CDATA[>। এটি জাভাস্ক্রিপ্ট, বা মন্তব্য করা গুরুত্বপূর্ণ নয়।
টমাস গ্রেনার


1

পিএইচপি-তে একটি ক্লিনার উপায়:

   function safeCData($string)
   {
      return '<![CDATA[' . str_replace(']]>', ']]]]><![CDATA[>', $string) . ']]>';
   }

প্রয়োজনে একটি মাল্টিবাইট-নিরাপদ str_replace ব্যবহার করতে ভুলবেন না (ল্যাটিন -1 নয় $string):

   function mb_str_replace($search, $replace, $subject, &$count = 0)
   {
      if (!is_array($subject))
      {
         $searches = is_array($search) ? array_values($search) : array ($search);
         $replacements = is_array($replace) ? array_values($replace) : array ($replace);
         $replacements = array_pad($replacements, count($searches), '');
         foreach ($searches as $key => $search)
         {
            $parts = mb_split(preg_quote($search), $subject);
            $count += count($parts) - 1;
            $subject = implode($replacements[$key], $parts);
         }
      }
      else
      {
         foreach ($subject as $key => $value)
         {
            $subject[$key] = mb_str_replace($search, $replace, $value, $count);
         }
      }
      return $subject;
   }

আপনি আপনার ডাউনটোট ব্যাখ্যা করতে পারেন? আমি যে ভুল করেছিলাম তা বলার অপেক্ষা রাখে না যে এটি কোথায় রয়েছে তা ব্যাখ্যা করার মতো।
আলাইন টাইম্বলো

আপনি যদি ইউটিএফ -8 ব্যবহার করেন তবে মাল্টিবাইট নিরাপদ প্রতিস্থাপন করার দরকার নেই। যদিও আমি
ডাউনওয়েট করিনি

-1

আমি মনে করি না যে সিডিটিএ বাধাগ্রস্ত করা ভাল উপায়। এখানে আমার বিকল্প ...

]আপনার চরিত্রের হেক্স মান অনুসরণ করে পালানোর ক্রমের জন্য ব্যবহার করুন । &#xhhhh;=> এ পছন্দ করুন]<unicode value>;

আপনি যদি ]]>আপনার এনকোড রেকর্ড করার চেষ্টা করেন তবে এফএন উত্পাদন করবে ]005D;]005D;]003E;যা সিডিএটাতে ঠিক আছে।

সত্তার নাম দ্বারা পালানোর চেয়ে এটি আরও ভাল, কারণ এগুলি আপনার অ্যাপে প্রতিবার ডিকোড হয় না এবং অ্যাম্পারস্যান্ড বনাম কিছু অন্যান্য অক্ষর / সিকোয়েন্সগুলি অবলম্বন করে সত্ত্বা পালানোর ক্ষেত্রে আপনার বিভিন্ন অগ্রাধিকার থাকতে পারে। ফলস্বরূপ আপনার সিডিএটিএর সামগ্রীতে আরও নিয়ন্ত্রণ রয়েছে।


-2

এই কাঠামোটি দেখুন:

<![CDATA[
   <![CDATA[
      <div>Hello World</div>
   ]]]]><![CDATA[>
]]>

অভ্যন্তরীণ সিডিএটিএ ট্যাগ (গুলি) এর জন্য আপনাকে অবশ্যই ]]]]><![CDATA[>তার পরিবর্তে বন্ধ করতে হবে ]]>। যে হিসাবে সহজ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.