အထူးသဖြင့်အသုံးပြုသူ input ကိုထုတ်ယူခြင်းသို့မဟုတ်တက်ကြွသောအကြောင်းအရာများကိုတင်ပြသည့်အခါ PHP မှ Elsping သည် PHP တွင်ဘုံလုပ်ငန်းဖြစ်သည်။ htmlenties နှင့် get_html_translation_table သည်အက္ခရာများကို HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲရန်နှင့် HTML အဖွဲ့အစည်းများအတွက်ပြောင်းလဲခြင်းဇယားကွက်များသို့ပြောင်းလဲရန်အသုံးပြုသောအသုံးများသော PHP လုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းသည်ပိုမိုတိကျသောဇာတ်ကောင်လွတ်မြောက်မှုကိုရရှိနိုင်မည်, လုံခြုံရေးအားနည်းချက်များကိုရှောင်ရှားနိုင်ပြီး 0 က်ဘ်ဆိုက်၏မှန်ကန်မှုနှင့်လုံခြုံမှုကိုသေချာစေရန်။
htmlenties function ကို HTML အဖွဲ့အစည်းများသို့ string တစ်ခုတွင်အက္ခရာများမှလွတ်မြောက်ရန်အသုံးပြုသည်။ ၎င်းသည်အဓိကအားဖြင့်ကွင်းလယ်ဆိုင်ရာခြစ်ရာတိုက်ခိုက်မှုများ (XSS) နှင့်အခြား HTML ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်အဓိကအားဖြင့်အသုံးပြုသည်။ အချို့သောအထူးအက္ခရာများ (ဥပမာ < , > စသည်တို့ ) သို့ပြောင်းလဲခြင်းအားဖြင့် HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲခြင်းဖြင့် HTMLEMTITS သည် ဤစာလုံးများကို browser တွင်မှန်ကန်စွာပြန်ဆိုနိုင်ကြောင်းသေချာစေသည်။
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"<div>Some text</div>"</span></span><span>;
</span><span><span class="hljs-variable">$escaped_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">htmlentities</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escaped_string</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း:&lt;div&gt;Some text&lt;/div&gt;</span></span><span>
</span></span>
အပေါ်ကဥပမာမှာ htmlenties ဟာ htmlenties တွေကို HTML tags <div> နှင့် </ div > ကို Entity ဇာတ်ကောင်များ, နှင့် & lt; / div & gt; ။ ၎င်းသည်ဤ tags များကိုခွဲခြမ်းစိတ်ဖြာခြင်းကိုရှောင်ရှားသည်။
get_html_translation_table function သည် HTML အထူးအက္ခရာများနှင့်၎င်းတို့၏သက်ဆိုင်ရာအဖွဲ့အစည်းများအားလုံးပါ 0 င်သည့်ဘာသာပြန်ဇယားတစ်ခုသို့ပြန်ပို့သည်။ ဤဇယားသည် htmlenties နောက်ကွယ်ရှိအလုပ်နှင့် htmlspecialchars လုပ်ဆောင်ချက်များ၏အခြေခံဖြစ်သည်။ ဤဇယားမှတစ်ဆင့်သင်သည်ဇာတ်ကောင်မှလွတ်မြောက်ရန်စိတ်ကြိုက်ပြုပြင်နိုင်သည်, သို့မဟုတ်အချို့သောဇာတ်ကောင်များနှင့်သက်ဆိုင်သောအဖွဲ့အစည်းများကိုကိုယ်တိုင်ရယူနိုင်သည်။
<span><span><span class="hljs-variable">$translation_table</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_html_translation_table</span></span><span>(HTML_ENTITIES, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$translation_table</span></span><span>);
</span></span>
ဤလုပ်ဆောင်ချက်သည်သော့ချက်ဇာတ်ကောင်ဖြစ်သည့် Associative ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ တန်ဖိုးသည်သက်ဆိုင်ရာ HTML entity ဖြစ်သည်။ ဥပမာအားဖြင့်၎င်းသည်အောက်ပါနှင့်ဆင်တူသောဖွဲ့စည်းပုံကိုပြန်လည်ရောက်ရှိစေသည်။
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[<] => &lt;
[>] => &gt;
[&] => &amp;
[<span class="hljs-string">"] => &quot;
['] => &#039;
...
)
</span></span></span>
Htmlenties သည် ဇာတ်ကောင် မှလွဲ. အလုပ်များ မှလွဲ. အများစုကိုလုပ်ပိုင်ခွင့်ရှိသော်လည်းတစ်ခါတစ်ရံတွင်အထူးသဖြင့်ဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင်ဇာတ်ကောင်လွတ်မြောက်ခြင်းကိုပိုမိုဆိုးရှားစွာထိန်းချုပ်ရန်လိုအပ်သည်။ ဤကိစ္စတွင် get_html_translation_table ကို ပေါင်းစပ်ခြင်းကလွတ်မြောက်ခြင်းလုပ်ငန်းများကိုပိုမိုတိကျပြီးပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေနိုင်သည်။
သင်ပုံမှန် htmlenties မှ ထွက်ပြေးတိမ်းရှောင်ခြင်းမရှိဘဲထုံးစံစည်းမျဉ်းစည်းကမ်းများအရ HTML အဖွဲ့အစည်းများမှအချို့သောဇာတ်ကောင်များမှလွတ်မြောက်လိုကြောင်းဆိုပါစို့။ Get_Html_translation_table မှတဆင့် Standard Ell_Tlation_table မှတဆင့်သင်ပထမ ဦး ဆုံးရနိုင်ပြီး, သင်၏လိုအပ်ချက်များနှင့်ကိုက်ညီရန်ဤဇယားကိုပြုပြင်နိုင်သည်။
<span><span><span class="hljs-comment">// စံရယူပါ HTML entity ပြောင်းလဲခြင်းစားပွဲပေါ်မှာ</span></span><span>
</span><span><span class="hljs-variable">$translation_table</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_html_translation_table</span></span><span>(HTML_ENTITIES, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// စားပွဲ၌အချို့သောဇာတ်ကောင်များ၏ထွက်ပေါက်နည်းလမ်းကိုပြုပြင်မွမ်းမံပါ</span></span><span>
</span><span><span class="hljs-variable">$translation_table</span></span><span>[</span><span><span class="hljs-string">'<'</span></span><span>] = </span><span><span class="hljs-string">'&lt;'</span></span><span>; </span><span><span class="hljs-comment">// ပုံမှန်အပြုအမူ</span></span><span>
</span><span><span class="hljs-variable">$translation_table</span></span><span>[</span><span><span class="hljs-string">'&'</span></span><span>] = </span><span><span class="hljs-string">'&amp;'</span></span><span>; </span><span><span class="hljs-comment">// ဥပမာအားဖြင့်, ငါတို့နေဆဲစောင့်ရှောက် '&' ထွက်ပေြးခြင်း</span></span><span>
</span><span><span class="hljs-comment">// 自定义其他字符的ထွက်ပေြးခြင်း</span></span><span>
</span><span><span class="hljs-variable">$translation_table</span></span><span>[</span><span><span class="hljs-string">'*'</span></span><span>] = </span><span><span class="hljs-string">'&ast;'</span></span><span>; </span><span><span class="hljs-comment">// သေတမ်းစာ '*' ထွက်ပေြးခြင်း为 '&ast;'</span></span><span>
</span><span><span class="hljs-comment">// သေတမ်းစာ修改后的表应用于字符串</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello * World!"</span></span><span>;
</span><span><span class="hljs-variable">$escaped_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$translation_table</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escaped_string</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း:Hello &ast; World!</span></span><span>
</span></span>
ဤနည်းအားဖြင့်မည်သည့်စာလုံးများကိုမှလွတ်မြောက်ရန်လိုအပ်ကြောင်းနှင့်မည်သည့်ဇာတ်ကောင်များမှာရှိနေသည်ကိုသင်ပြောင်းလွယ်ပြင်လွယ်ထိန်းချုပ်နိုင်သည်။
အခြားသူများသည် HTML entity နှင့်အတူအချို့သောစာလုံးများကိုသာမှလွတ်မြောက်ချင်ကြပြီးအချို့မှာကျန်ရှိနေသေးသည်ဆိုပါစို့။ ဤအကျိုးသက်ရောက်မှုကိုအောင်မြင်ရန် htmlenties နှင့် get_html_translation_table ကို သင်ပေါင်းစပ်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်အခြားစာလုံးများကိုစွန့်ခွာနေစဉ် (သို့) >> မှ လွတ်မြောက်ရန် သာလိုပေမည်။
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"This is a <div> & 'text' with some special characters."</span></span><span>;
</span><span><span class="hljs-variable">$translation_table</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_html_translation_table</span></span><span>(HTML_ENTITIES, ENT_NOQUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// 只ထွက်ပေြးခြင်း <, > နှင့် & အထိမ်းအမှတ်</span></span><span>
</span><span><span class="hljs-variable">$escaped_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$translation_table</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escaped_string</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း:This is a &lt;div&gt; &amp; 'text' with some special characters.</span></span><span>
</span></span>
HTMLENTIDS နှင့် Get_Html_translation_table functions များကိုကျိုးကြောင်းဆီလျော်စွာပေါင်းစပ်ခြင်းဖြင့် PHP developer များသည်ပိုမိုလွယ်ကူစွာနှင့်တိကျသောဇာတ်ကောင်များလွတ်မြောက်လာနိုင်သည်။ htmlenties သည် များသောအား ဖြင့် အများအားဖြင့်အလုပ်လုပ်သောအစွမ်းထက်။ ရိုးရှင်းသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ နှစ်ခုပေါင်းစပ်မှုသည်စွမ်းမှလွတ်မြောက်ခြင်း၏လုံခြုံရေးနှင့်ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်, အလားအလာရှိသောလုံခြုံရေးအန္တရာယ်များကိုလျှော့ချရန်နှင့်ပုံမှန် dynamic web content ကိုပုံမှန် display ကိုသေချာစေသည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုဖြစ်စဉ်တွင်လိုအပ်ချက်များအရသင့်လျော်သောထွက်ပေါက်နည်းလမ်းကိုရွေးချယ်ခြင်းသည် Code ၏ကြံ့ခိုင်မှုကိုတိုးမြှင့်နိုင်သော်လည်းအသုံးပြုသူများကိုပိုမိုလုံခြုံစိတ်ချရသောအတွေ့အကြုံများပေးနိုင်သည်။