analizar el contenido de las etiquetas HTML usando expresiones regulares
-
18-09-2019 - |
Pregunta
Quiero analizar el contenido de
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
¿Cómo puedo hacer esto con expresiones regulares, php y combinar preg?
Solución
este resume bastante bien.
En resumen, no utilizar expresiones regulares para analizar HTML. En su lugar, mirar las clases DOM y especialmente DOMDocument :: loadHTML
Otros consejos
Si usted tiene un documento HTML, que realmente no debería utilizar expresiones regulares para analizarlo:. HTML no es sólo "regular" suficiente para que
Una solución mucho mejor sería para cargar el documento HTML usando un analizador DOM - por ejemplo, DOMDocument::loadHTML y href="http://php.net/manual/en/domxpath.query.php" rel="nofollow noreferrer"> consultas XPath menudo hacer un gran trabajo!
<td>content</td>
: <td>([^<]*)</td>
<td *specific td class*>content</td>
: <td[^>]*class=\"specific_class\"[^>]*>([^<]*)<
@OP, aquí está una manera
$str = <<<A
<td>content</td>
<td *?*>content</td>
<td *specific td class*>content</td>
<td *?*> multiline
content </td>
A;
$s = explode("</td>",$str);
foreach ($s as $a=>$b){
$b=preg_replace("/.*<td.*>/","",$b);
print $b."\n";
}
salida
$ php test.php
content
content
content
multiline
content