HTML PHP SAX çözümleyici?

4 Cevap php

I need HTML SAX (not DOM!) parser for PHP able to process even invalid HTML code. The reason i need it is to filter user entered HTML (remove all attributes and tags except allowed ones) and truncate HTML content to specified length.

Herhangi bir fikir?

4 Cevap

SAX geçerli XML işleme ve geçersiz biçimlendirme başarısız yapıldı. Geçersiz HTML biçimlendirmesi İşleminiz SAX ayrıştırıcılar genellikle tutmak daha fazla devlet tutmak gerekir.

Ben HTML için herhangi SAX gibi ayrıştırıcı farkında değilim. En iyi atış önce düzenli aracılığıyla HTML geçmek ve daha sonra bir XML ayrıştırıcı kullanmanız için, ama bu ilk etapta bir SAX çözümleyici kullanarak amacınıza yenilgi olabilir.

Kullanmayı deneyin HTML SAX Parser

Ben burada armut paketi önerebilir: http://pear.php.net/package/XML_HTMLSax/redirected

İki adımlar olarak özetlenmesi:

  1. Tidy "İyi XHTML" "free HTML" dönüştürmek için kullanın.
  2. XML Parser SAX API XML olarak XHTML ayrıştırmak için kullanın.

Tidy (!), XHTML içine "serbest HTML" (veya ne zaman size "sözde XHTML güvenmiyorum") dönüştürmek için ilk olarak kullanın. Bkz cleanRepair yöntemi. Bu daha fazla zaman gerekiyor, ama büyük dosyalar ile çalışan (!) ... Set some minutes as maximum execution time çok büyük eğer.

(Büyük dosyalar ile çalışmak için) bir başka seçenek işaretli veya XHTML dönüştürülmüştür sonra XHTML dosyaları önbelleğe etmektir. Derli toplu repairfile yöntemine bakın.

Bir "güvenilir XHTML" ile, use SAX ... PHP ile SAX nasıl kullanılır?

PHP LibXML (xmlsoft.org at LibXML2 bakınız) tarafından uygulanan ve onun arayüzü {olduğunu düşünecek olursak, bir SAX standard API ile XML Ayrıştırma [(4)]}, bu yakın SAX standard API etmektir.

Başka bir arayüz (a PHP iterator yerine geleneksel SAX arayüzü) ile "LibXML2 Sax", kullanmak için başka bir şekilde kullanmak için XMLReader. Bkz this explanation about "XMLReader use SAX".


Evet, terimleri "SAX" veya "SAX API" PHP el kitabında ifade değil (!). Bkz this old but good introduction.