Bueno igual no funciona en todos los casos, si la carpeta empieza con la letra
h, no va a funcionar. Pero nada que no se pueda solucionar... Dejo otro ejemplo de práctica con estas expresiones regulares.
Código PHP:
Ver original<?php
$html = <<<HTML
<html><head><title>Titulo de la web</title></head>
<body>
Texto<br />
<img src="http://www.google.com/imagen.jpg" /><br />
Texto 2<br />
<img src="carpeta/imagen.jpg" /><br />
Texto 3<br />
<img src="carpeta2/imagen.jpg" /><br />
Texto 4<br />
<img src="http://www.forosdelweb.com/imagen.gif" alt="El mejor foro" /><br />
</body>
</html>
HTML;
$res = preg_replace('@src="(.*?)"@is', 'src="http://dominio.com/$1"', $html); $res = preg_replace('@http://dominio.com/http://@is', 'http://', $res); echo $res;
Edit: Es mejor hacer esto con DOMDocument por ejemplo para asegurarse que si reemplace lo que es.