/ / Necesito ayuda de expresiones regulares en PHP 5 - php, regex, html-parsing

Necesito ayuda de expresiones regulares en PHP 5 - PHP, expresiones regulares, html-parsing

De acuerdo. Es cierto que no soy el mejor para trabajar con expresiones regulares. Lo que estoy haciendo es un raspado de pantalla y luego tratar de corregir los valores img src en las imágenes incrustadas para que apunten al dominio original. Esta es la expresión regular en la que he estado probando variaciones (demasiadas para enumerar, aquí está la actual):

preg_match_all("/<imgb[^>]*>/i", $html, $images);

Lo que esto termina haciendo es reemplazar todos < con />. Lo que necesito hacer es devolver el(actualmente) cinco imágenes en la página en una matriz para que pueda trabajar con ellas para corregir sus valores src, luego escribirlas de nuevo en $ html, que se establece al principio del archivo:

$html = file_get_contents($target_url);

Respuestas

5 para la respuesta № 1

Básicamente, no hagas esto con expresiones regulares. poder Analice HTML con expresiones regulares, pero es casi seguro que no vale la pena el esfuerzo.

Hágalo con un análisis DOM genuino, usando el DOMDocument clase:

$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName("img");
foreach ($images as $image) {
$image->setAttribute("src", "http://example.com/" . $image->getAttribute("src"));
}
$html = $dom->saveHTML();