Domanda

Sto cercando dei buoni metodi di manipolazione HTML in PHP.Per esempio, il problema che ho attualmente è in trattativa con HTML non valido.

Sto ricevendo input che sembra qualcosa di simile a questo:

<div>This is some <b>text

Come avrete notato, il codice HTML è mancante tag di chiusura.Potrei usare la regex o un Parser XML per risolvere questo problema.Tuttavia, è probabile che dovrò fare altri DOM manipolazione in futuro.Mi chiedo se ci sono buone librerie PHP per gestire la manipolazione del DOM simile a come Javascript si occupa DOM manipolazione.

È stato utile?

Soluzione

PHP ha una estensione PECL che consente di accedere alle funzionalità di HTML Tidy.Tidy è abbastanza potente libreria che deve essere in grado di prendere un codice come quello e chiudere i tag in modo intelligente.

Io la uso per pulire XML non valido e il codice HTML inviato a me da un annuncio di sistema prima dell'importazione.

Altri suggerimenti

Ho trovato PHP Semplice HTML DOM e di essere il più utile e dritto in avanti biblioteca di sicurezza.Meglio di PECL direi.

Ho scritto un articolo su come usarlo per raschiare il myspace dell'artista le date del tour (solo un esempio). Ecco un link per l' php html semplice parser dom.

DOM biblioteca, di cui è ora integrato in grado di risolvere facilmente questo problema.Il loadHTML metodo accetta XML non valido, mentre il metodo load non.

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

L'output sarà:

<!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>

Per la manipolazione del DOM penso che quello che stai cercando è questo.Ho usato per analizzare i documenti HTML da web e ha funzionato bene per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top