কম্পিউটার টিউটোরিয়াল

JSON-এনকোডেড HTML5 `data-*` অ্যাট্রিবিউটে সিঙ্গেল কোট (Single Quote) এস্কেপ/এনকোড করা

সমস্যা: JSON স্ট্রিং-এ সিঙ্গেল কোট থাকলে HTML অ্যাট্রিবিউট ব্রেক হয়


সমাধান ১: PHP `json_encode` + `htmlspecialchars` (সার্ভার-সাইড রেন্ডারিং)

';
// আউটপুট: data-tags="[\"html5\",\"it\u0027s great\",\"tutorial\"]"
?>

সমাধান ২: ডাবল কোট অ্যাট্রিবিউট + JSON_HEX_APOS (সিম্পল)

 সিঙ্গেল কোট সমস্যা নেই
echo '
'; ?>

সমাধান ৩: JavaScript-এ ডাইনামিক্যালি সেট (সার্ভার-সাইড এস্কেপিং ছাড়া)

 কোনো এস্কেপিং লাগে না

// পাওয়ার সময়
const parsed = JSON.parse(el.dataset.tags); // ['html5', "it's great", 'tutorial']

স Faces অনুশীলন

  1. সার্ভার-সাইড রেন্ডারিং: `json_encode($arr, JSON_HEX_APOS | JSON_HEX_QUOT)` + `htmlspecialchars(..., ENT_QUOTES)` + ডাবল কোট অ্যাট্রিবিউট।
  2. ক্লায়েন্ট-সাইড: `element.dataset.prop = JSON.stringify(value)` — সবচেয়ে সফ এবং এস্কেপ-ফ্রি।
  3. যদি লিগেসি IE সাপোর্ট লাগে: `JSON_HEX_APOS` নেই, তখন `str_replace("'", "\\'", $json)`।
  1. জাভাস্ক্রিপ্ট ব্যবহার করে JSON অ্যারে থেকে ডেটা পড়া

  2. জাভাস্ক্রিপ্টে টেক্সটএরিয়াতে JSON ডেটা প্রিটিফাই করা

  3. HTML5-এ IndexedDB

  4. AOI কী?