tutorial - html কি




আমি<a href...> এপ্রেসেন্ডগুলি এনকোড করবো? (3)

বর্তমান সরকারী এইচটিএমএল সুপারিশের মাধ্যমে, এম্প্রেস্যান্ড অবশ্যই পালিয়ে যেতে হবে যেমন &amp; এই মত প্রসঙ্গে। যাইহোক, ব্রাউজারগুলির এটি প্রয়োজন হয় না এবং HTML5 সিআর এটি একটি rule তৈরি করার প্রস্তাব দেয়, যাতে বিশেষ নিয়ম গুণমান মানগুলিতে প্রয়োগ হয়। বর্তমান HTML5 বৈধতার এই সম্মানটি পুরানো হয়েছে (মন্তব্য সহ বাগ রিপোর্ট দেখুন)।

এটি গুণমানের মানগুলির মধ্যে অ্যাপার্সেন্ডস থেকে পালাতে সক্ষম হবে, তবে বর্তমান সরঞ্জামগুলির সাথে বৈধতা ছাড়াও, href মানগুলিতে তাদের পালাতে কোনও বাস্তব প্রয়োজন নেই (এবং যদি আপনি তাদের পালাতে শুরু করেন তবে ভুলগুলি করার একটি ক্ষুদ্র ঝুঁকি রয়েছে)।

আমি এমন কোড লিখছি যা স্বয়ংক্রিয়ভাবে এইচটিএমএল জেনারেট করে, এবং আমি এটি সঠিকভাবে এনকোড করতে চাই।

বলুন আমি নিম্নলিখিত ইউআরএল একটি লিঙ্ক তৈরি করছি:

http://www.google.com/search?rls=en&q=stack+overflow

আমি অনুমান করছি যে সমস্ত বৈশিষ্ট্য মান এইচটিএমএল-এনকোড হওয়া উচিত। (যদি আমি ভুল হয়ে থাকি তবে দয়া করে আমাকে সংশোধন করুন।) তাহলে এর মানে হল যে আমি যদি উপরের URL টি একটি নোঙ্গর ট্যাগে রাখি, তবে এ্যাম্প্স্সেন্ড হিসাবে এনকোড করবো &amp; , এটার মত:

<a href="http://www.google.com/search?rls=en&amp;q=stack+overflow">

এটা কি ঠিক?


হ্যাঁ, আপনি রূপান্তর করা উচিত &amp;

W3C দ্বারা এই HTML বৈধতা সরঞ্জাম এইরকম প্রশ্নগুলির জন্য সহায়ক। এটি আপনাকে একটি নির্দিষ্ট পৃষ্ঠার জন্য ত্রুটি এবং সতর্কতা বলতে হবে।


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

লিঙ্কগুলির মধ্যে URL সম্পর্কিত আপনার দুটি মান রয়েছে ( <a href )।

প্রথম মানটি RFC 1866 (এইচটিএমএল 2.0) যেখানে "3.2.1। ডেটা অক্ষর" এ আপনি HTML অক্ষরের মান হিসাবে ব্যবহৃত হলে অক্ষরগুলি পড়তে পারেন। (বৈশিষ্ট্যাবলীগুলি বিশেষ অক্ষরগুলিকে অনুমতি দেয় না, যেমন <a hr&ef="http://... অনুমোদিত নয়, এবং <a hr&amp;ef="http://... )

পরে এটি এইচটিএমএল 4 স্ট্যান্ডার্ডে চলে গেছে, আপনি যা পালাতে যাচ্ছেন তা হল:

<   to   &lt;
>   to   &gt;
&   to   &amp;
"   to   &quote;
'   to   &apos;

অন্য মান হল RFC 3986 "জেনেরিক ইউআরআই মান", যেখানে URL গুলি পরিচালনা করা হয় (ব্রাউজারটি যখন একটি লিঙ্ক অনুসরণ করতে চলেছে তখন এটি হ'ল ব্যবহারকারীটি HTML উপাদানটিতে ক্লিক করেছেন)।

reserved    = gen-delims / sub-delims

gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

sub-delims  = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="

সেই অক্ষরগুলি এড়িয়ে যাওয়ার জন্য এটি গুরুত্বপূর্ণ, যাতে ক্লায়েন্ট জানে না যে তারা ডাটা বা একটি ডিলিমাইটার প্রতিনিধিত্ব করে।

উদাহরণ unescaped:

https://example.com/?user=test&password&te&st&goto=https://google.com

উদাহরণ, সম্পূর্ণ legit URL

https://example.com/?user=test&password&te%26st&goto=https%3A%2F%2Fgoogle.com

এইচটিএমএল বৈশিষ্ট্য মান সম্পূর্ণরূপে বৈধ ইউআরএল উদাহরণ:

https://example.com/?user=test&amp;password&amp;te%26st&amp;goto=https%3A%2F%2Fgoogle.com

এছাড়াও গুরুত্বপূর্ণ পরিস্থিতিতে:

  • একটি মান হিসাবে জাভাস্ক্রিপ্ট:

    <img src="..." onclick="window.location.href = &quot;https://example.com/?user=test&amp;password&amp;te%26st&amp;goto=https%3A%2F%2Fgoogle.com&quot;;">...</a> (হ্যাঁ ;; সঠিক।)

  • একটি মূল্য হিসাবে JSON:

    <a href="..." data-analytics="{&quot;event&quot;: &quot;click&quot;}">...</a>

  • পালিয়ে যাওয়া জিনিসগুলি, ডাবল এনকোডিং, প্যারামিটারের ভিতরে URL এর ভিতরে URL, ...

    http://x.com/?passwordUrl=http%3A%2F%2Fy.com%2F%3Fuser%3Dtest&amp;password=&quot;&quot;123





html