Supongamos que tenemos un texto largo en HTML que forma una cadena de texto:
<p>Listado de elementos</p>
<ul>
<li><a href="#">Elemento 1</a></li>
<li class="elegido"><a href="#">Elemento 2</a></li>
<li><a href="#">Elemento 3</a></li>
<li><a href="#">Elemento 4</a></li>
<li class="elegido"><a href="#">Elemento 5</a></li>
<li><a href="#">Elemento 6</a></li>
</ul>
Y queremos sacar únicamente los elementos LI
con class="elegido"
.
Esto es posible con la funcion PHP preg_match_all
, que nos devolverá un array con los fragmentos que haya encontrado:
<?
$htmlOriginal = '<p>Listado de elementos</p>
<ul>
<li><a href="#">Elemento 1</a></li>
<li class="elegido"><a href="#">Elemento 2</a></li>
<li><a href="#">Elemento 3</a></li>
<li><a href="#">Elemento 4</a></li>
<li class="elegido"><a href="#">Elemento 5</a></li>
<li><a href="#">Elemento 6</a></li>
</ul>';
$htmlABuscar = '/<li class="elegido".*li>/';
preg_match_all($htmlABuscar, $htmlOriginal, $htmlFinal);
echo $htmlFinal[0]; // <li class="elegido"><a href="#">Elemento 2</a></li>
echo $htmlFinal[1]; // <li class="elegido"><a href="#">Elemento 5</a></li>
?>