أوكرانيا بحاجة لمساعدتكم الآن!
في 24 فبراير 2022، أمر الرئيس الروسي فلاديمير بوتين بغزو أوكرانيا من قبل القوات المسلحة الروسية.
هناك حاجة ماسة لدعمكم.
- التبرع للمتطوعين. إليكم صندوق المتطوعين الذي يساعد الجيش الأوكراني على توفير جميع المعدات اللازمة: https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi- أرميي أو https://savelife.in.ua/en/donate/
- التحقق الثلاثي من مصادر وسائل التواصل الاجتماعي. يحاول التضليل الروسي التغطية على الواقع وتشويهه في أوكرانيا.
- ساعد اللاجئين الأوكرانيين الفارين من الهجمات والقصف الروسي: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/
- مارسوا الضغط على ممثليكم السياسيين لتقديم المساعدة لأوكرانيا.
- ثقوا بالشعب الأوكراني، فهو لن يستسلم، وليس لديه أوكرانيا أخرى.
شكرًا لك!
HTML5 هو محلل وكاتب HTML5 متوافق مع المعايير ومكتوب بالكامل بلغة PHP. إنه مستقر ويستخدم في العديد من مواقع الإنتاج، وقد تم تنزيله أكثر من خمسة ملايين.
يوفر HTML5 الميزات التالية.
قم بتثبيت HTML5-PHP باستخدام الملحن.
عن طريق إضافة تبعية masterminds/html5
إلى ملف composer.json
الخاص بك:
{
"require" : {
"masterminds/html5" : " ^2.0 "
},
}
عن طريق استدعاء أمر يتطلب عبر الملحن القابل للتنفيذ:
composer require masterminds/html5
يحتوي HTML5-PHP على واجهة برمجة تطبيقات عالية المستوى وواجهة برمجة تطبيقات منخفضة المستوى.
إليك كيفية استخدام واجهة برمجة تطبيقات مكتبة HTML5
عالية المستوى:
<?php
// Assuming you installed from Composer:
require " vendor/autoload.php " ;
use Masterminds HTML5 ;
// An example HTML document:
$ html = <<< 'HERE'
<html>
<head>
<title>TEST</title>
</head>
<body id='foo'>
<h1>Hello World</h1>
<p>This is a test of the HTML5 parser.</p>
</body>
</html>
HERE;
// Parse the document. $dom is a DOMDocument.
$ html5 = new HTML5 ();
$ dom = $ html5 -> loadHTML ( $ html );
// Render it as HTML5:
print $ html5 -> saveHTML ( $ dom );
// Or save it to a file:
$ html5 -> save ( $ dom , ' out.html ' );
إن $dom
الذي أنشأه المحلل اللغوي هو كائن DOMDocument
كامل. وسوف تأخذ أساليب save()
و saveHTML()
أي DOMDocument.
من الممكن تمرير مجموعة من خيارات التكوين عند تحميل مستند HTML5.
// An associative array of options
$ options = array (
' option_name ' => ' option_value ' ,
);
// Provide the options to the constructor
$ html5 = new HTML5 ( $ options );
$ dom = $ html5 -> loadHTML ( $ html );
يتم دعم الخيارات التالية:
encode_entities
(منطقي): يشير إلى أن المُسلسل يجب أن يقوم بتشفير الأحرف بقوة ككيانات. وبدون ذلك، فإنه لا يشفر إلا الحد الأدنى.disable_html_ns
(منطقي): يمنع المحلل اللغوي من تعيين مساحة اسم HTML5 تلقائيًا لمستند DOM. هذا مخصص لأدوات DOM غير المدركة لمساحة الاسم.target_document
(DOMDocument): مستند DOM سيتم استخدامه كوجهة للعقد التي تم تحليلها.implicit_namespaces
(array): مصفوفة مساعدة من مساحات الأسماء التي يجب أن يستخدمها المحلل اللغوي. الاسم هو بادئة العلامة، والقيمة هي NS URI. توفر هذه المكتبة واجهات برمجة التطبيقات ذات المستوى المنخفض التالية التي يمكنك استخدامها لإنشاء المزيد من أدوات HTML5 المخصصة:
وتختبر اختبارات الوحدة كل جزء من واجهة برمجة التطبيقات (API)، ويتم توثيق كل وظيفة عامة بشكل جيد.
تم تصميم المحلل اللغوي على النحو التالي:
Scanner
بمعالجة المسح نيابة عن المحلل اللغوي.Tokenizer
البيانات من الماسح الضوئي، ويوزعها، ويصنفها، ويرسلها إلى EventHandler
. وهو محلل النسب العودي.EventHandler
إشعارات وبيانات لكل حدث دلالي محدد يحدث أثناء عملية الترميز.DOMBuilder
هو EventHandler
يستمع إلى ترميز الأحداث ويبني شجرة مستندات ( DOMDocument
) بناءً على الأحداث. يأخذ المُسلسل بنية البيانات ( DOMDocument
) ويحولها إلى تمثيل حرف - مستند HTML5.
يتم تقسيم التسلسل إلى ثلاثة أجزاء:
OutputRules
على القواعد اللازمة لتحويل عناصر DOM إلى سلاسل. القواعد هي تطبيق للواجهة RulesInterface
مما يسمح باستخدام مجموعات قواعد مختلفة.Traverser
، وهو جهاز مشي على الأشجار ذو أغراض خاصة. يقوم بزيارة كل عقدة في الشجرة ويستخدم OutputRules
لتحويل العقدة إلى سلسلة.HTML5
Traverser
ويخزن البيانات الناتجة في المكان الصحيح. المُسلسل ( save()
, saveHTML()
) يتبع القسم 8.9 من مواصفات HTML 5.0. لذلك يتم تسلسل العلامات وفقًا لهذه القواعد:
يرجى التحقق من قائمة انتظار المشكلات للحصول على قائمة كاملة، ولكن فيما يلي المشكلات المعروفة التي ليست موجودة حاليًا في خريطة الطريق:
:
ليس له معنى خاص. بشكل افتراضي، لا يدعم المحلل اللغوي مساحات أسماء نمط XML عبر :
; لتمكين مساحات أسماء XML، راجع قسم مساحات أسماء XML لاستخدام مساحات أسماء نمط XML، يجب عليك تكوين مثيل HTML5
الرئيسي بشكل جيد.
use Masterminds HTML5 ;
$ html = new HTML5 ( array (
" xmlNamespaces " => true
));
$ dom = $ html -> loadHTML ( ' <t:tag xmlns:t="http://www.example.com"/> ' );
$ dom -> documentElement -> namespaceURI ; // http://www.example.com
يمكنك أيضًا إضافة بعض البادئات الافتراضية التي لن تتطلب إعلان مساحة الاسم، لكن عناصرها ستكون ذات مساحة اسم.
use Masterminds HTML5 ;
$ html = new HTML5 ( array (
" implicitNamespaces " => array (
" t " => " http://www.example.com "
)
));
$ dom = $ html -> loadHTML ( ' <t:tag/> ' );
$ dom -> documentElement -> namespaceURI ; // http://www.example.com
المساهمون المتفانون (والصابرون) في التصحيحات الصغيرة والكبيرة، الذين قاموا بالفعل بتحسين هذه المكتبة. راجع ملف CREDITS للحصول على قائمة المساهمين.
نحن ندين بالامتنان الكبير للمؤلفين الأصليين لـ html5lib.
على الرغم من عدم وجود الكثير من المحلل اللغوي الأصلي، فقد تعلمنا الكثير من قراءة مكتبة html5lib. وتبقى بعض القطع هنا. على وجه الخصوص، فإن الكثير من التعامل مع UTF-8 وUnicode مشتق من مشروع html5lib.
تم إصدار هذا البرنامج بموجب ترخيص MIT. تم أيضًا إصدار مكتبة html5lib الأصلية بموجب ترخيص MIT.
راجع LICENSE.txt
تحتوي بعض الملفات على تأكيدات حقوق الطبع والنشر من قبل أفراد محددين معنيين بـ html5lib. وقد تم الاحتفاظ بها عند الاقتضاء.