viernes, 17 de abril de 2009

Reemplazar enlaces relativos por absolutos parseando con PHP

Tenía un problema: parseando el HTML de una página, necesitaba que las url de las imágenes, estilos y javascript fueran absolutos (al ponerlo en otro dominio). Como añadido, vi que algunas sí que tenían "path" absoluto, así que no podía hacer un reemplazar básico.

Estrujándome el cerebro saqué esta expresión regular que comparto. ¿Alguna mejora?
$html = 
preg_replace(
"#((src|href)=\")(http:\/\/www\.ejemplo\.com\/)?([^\"]+)#",
'${1}http://www.ejemplo.com/${4}',
$html);

No hay comentarios: