Chiudi o correggi un tag img danneggiato usando PHP

Sto avendo problemi a risolvere una stringa html ‘rotta’, usando PHP

Sto affrontando il problema comune dell’uso di substr su una stringa html, che si traduce in tag interrotti.

Sono riuscito a correggere tutti i tag danneggiati, ad eccezione di quello dell’immagine, poiché il tag stesso non è completo, non è nemmeno un tag di apertura,

Ad esempio, supponiamo di avere una stringa:

<img alt="foo" title="bar"

Vorrei davvero aggiungere un > per chiudere questo, e gli altri script sanno come chiudere automaticamente il div .

Qualcuno ha qualche idea su come catturare tag danneggiati e correggerli automaticamente?

Ho visto molte soluzioni tra cui DOMdocument, Tidy e HTMLpurifier, ma non sembrano risolvere questo problema specifico.

Qualsiasi aiuto sarebbe apprezzato.

Sì, puoi riparare i tag usando DOMDocument . (Basato sull’esempio):

 $html = '
fooloadHTML($html); libxml_clear_errors(); $out = ''; foreach ($dom->getElementsByTagName('body')->item(0)->childNodes as $child) { $out .= $dom->saveXML($child); } echo htmlentities($out);

  • Demo di Fiddle