سؤال

أنا أبحث عن طرق جيدة للتعامل مع HTML في PHP.على سبيل المثال، المشكلة التي أواجهها حاليًا هي التعامل مع HTML غير صحيح.

أحصل على مدخلات تبدو كالتالي:

<div>This is some <b>text

كما لاحظت، فإن HTML يفتقد علامات الإغلاق.يمكنني استخدام regex أو محلل XML لحل هذه المشكلة.ومع ذلك، من المحتمل أن أضطر إلى القيام بمعالجة DOM أخرى في المستقبل.أتساءل عما إذا كانت هناك أي مكتبات PHP جيدة تتعامل مع معالجة DOM بشكل مشابه لكيفية تعامل Javascript مع معالجة DOM.

هل كانت مفيدة؟

المحلول

PHP لديه امتداد PECL يتيح لك الوصول إلى ميزات HTML Tidy.Tidy هي مكتبة قوية جدًا وينبغي أن تكون قادرة على استيعاب تعليمات برمجية كهذه وإغلاق العلامات بطريقة ذكية.

أستخدمه لتنظيف XML وHTML المشوهين المرسلين إليّ بواسطة نظام الإعلانات المبوبة قبل الاستيراد.

نصائح أخرى

لقد وجدت PHP Simple HTML DOM هي المكتبة الأكثر فائدة ومباشرة حتى الآن.أفضل من PECL أود أن أقول.

لقد كتبت مقالا عن كيفية استخدامه لكشط مواعيد جولة الفنان ماي سبيس (مجرد مثال.) إليك رابط إلى PHP بسيط HTML محلل دوم.

يمكن لمكتبة DOM المضمنة الآن حل هذه المشكلة بسهولة.سيقبل أسلوب التحميل HTML ملف XML المشوه بينما لن يقبل أسلوب التحميل ذلك.

$d = new DOMDocument;
$d->loadHTML('<div>This is some <b>text');
$d->saveHTML();

سيكون الإخراج:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body>
    <div>This is some <b>text</b></div>
  </body>
</html>

للتعامل مع DOM، أعتقد أن ما تبحث عنه هو هذا.لقد اعتدت على تحليل مستندات HTML من الويب وكان الأمر جيدًا بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top