القدرة على تشفير وفك تشفير مجموعة معينة من الأحرف تسمى "كيانات Html" موجودة منذ PHP4. من بين العدد الهائل من الوظائف المضمنة في PHP، هناك 4 وظائف متطابقة تقريبًا تُستخدم لتشفير وفك تشفير كيانات html؛ على الرغم من أوجه التشابه بينهما، فإن 2 منهم يوفران قدرات إضافية غير متاحة للآخرين.
وظائف الترميز | وظائف فك التشفير |
---|---|
htmlentities¹ | html_entity_decode¹ |
htmlspecialchars² | htmlspecialchars_decode² |
¹ يمكن لـ htmlentities وhtml_entity_decode تشفير وفك تشفير الأحرف داخل جدول ترجمات HTML الخاص بـ PHP فقط.
² يمكن لـ htmlspecialchars وhtmlspecialchars_decode تشفير وفك تشفير الأحرف الخاصة³ فقط.
³ لا يتم تفسير الأحرف الخاصة على أنها علامات HTML ويتم ترميز الأحرف ذات 8 بت كأحرف ASCII فقط.
ما يميز هذه الفئة عن البقية هو أن هذه الفئة، بالإضافة إلى قدرتها على تشفير وفك تشفير جميع الأحرف/الكيانات نفسها التي يمكن تشفيرها وفك تشفيرها بواسطة وظائف htmlentities() وhtml_entity_decode() في PHP، يمكنها أيضًا تشفيرها وفك تشفير عدد كبير جدًا من الأحرف/الكيانات التي لن تقوم وظائف تشفير وفك تشفير htmlentities المضمنة في PHP بتشفيرها/فك تشفيرها، نظرًا لافتقارها إلى معنى خاص في HTML، يحب:
composer require gavinggordon/htmlentities
include_once ( __DIR__ . ' /vendor/autoload.php ' );
$ htmlentities = new GGG HtmlEntities ();
$ to_encode = ' Test-,;: ' ;
// Set a variable containing a string of the encoded characters you wish to be encoded;
$ encoded = $ htmlentities -> encode ( $ to_encode );
// Get the encoded result by using the encode method on the returned instance of HtmlEntities;
echo $ encoded ;
// Display the encoded result, which is of type String;
// Test‐,;:
$ to_decode = ' Test˜*(# ' ;
// Set a variable containing a string of the encoded characters you wish to be decoded;
$ decoded = $ htmlentities -> decode ( $ to_decode );
// Get the decoded result by using the decode method on the returned instance of HtmlEntities;
echo $ decoded ;
// Display the decoded result, which is of type String;
// Test~*(#
تحقق من إحصائيات CodeClimate الخاصة بنا بالضغط هنا.
حصل هذا الفصل على جائزة PHP Innovation Award المقدمة من PHPClasses.org. يمكن الوصول إلى دروس PHP الأخرى الخاصة بي عبر الإنترنت من خلال ملفي الشخصي على GitHub أو ملفي الشخصي في PHPClasses.org.