Cambiar rutas relativas por rutas absolutas con PHP

Hace poco he estado desarrollando una utilidad para la edición de una newsletter HTML y me he encontrado con un problema interesante. Una vez que tenemos editado el formato, insertadas las imágenes, los links, etc. podemos proceder al envío de la newsletter. Pero el problema es que esas imágenes y algunos links tienen rutas relativas, por lo tanto, el programa de correo que reciba el html, no podrá encontrar esos elementos.

Gracias a PHP y la potencia de las expresiones regulares, aquí está la solución:


$str=preg_replace('#(href|src)="([^:"]*)("|(?:(?:%20|\s|\+)[^"]*"))#',
'$1="http://www.ingeniuz.com/$2$3',$str);

La función preg_replace, se encarga de realizar reemplazos en una cadena, siguiendo las instrucciones que se le dan en la expresión regular que toma como argumento.
De esta forma, todas las url contenidas dentro de los atributos src y href son cambiadas (si es necesario) por su forma absoluta.

Via: wintermute

Publicado por

manuel

Me dedico al desarrollo de aplicaciones. Principalmente trabajo con XHTML, CSS, Javascript, XML, JSON, PHP, MySQL, Linux/MacOS X y Flash actionscript. Intento siempre trabajar con estándares y simplificar el desarrollo y las aplicaciones finales con el objetivo de orientarlas al usuario (que sean útiles y faciliten el trabajo).

2 comentarios en «Cambiar rutas relativas por rutas absolutas con PHP»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *