/** ***********************************
* *
* Función para sacar Urls de imágenes *
* *
**************************************/
function imgurl($url){
//$url ha de tener código html, en el caso de que quieras abrir una página se utiliza $url = file($url);
//buscamos la etiqueta <img> con la siguiente expresión regular
if(preg_match_all('/<img.*?src=(\'|")((http|https|ftp|\/)\s*)([^\s]*)(\'|")/', $url, $resultado, PREG_SET_ORDER)){
//creamos una variable y la declaramos vacia
$addimg = '';
//itineramos los resultados
foreach ($resultado as $sresultado){
//volvemos a hacer una expresión regular, en este caso con preg_replace para quitar todo lo innecesario
$addimg2 = preg_replace('/<img.*?src=(\'|")/i', '', $sresultado[0]);
$addimg .= preg_replace('/".*?/i', '', $addimg2).'<br>';
}
//puesto que no me interesa el último caracter de addimg ya que es una "," lo elimino con substr
$addimg = substr ($addimg, 0, -1);
return $addimg;
}
}
Trabajar con expresiones regulares puede llegar a ser difícil, pero con un poco de estudio se resuelve rápido. En esta función, lo que más problemas puede dar, es obviar lo que haya entre <img y src=, como atributos width, height, class, alt... Con la expresión (.*?) obviamos cualquier elemento que se repita 0 o más veces en la expresión entre img y src. Para más información: preg_match_all y preg_replaceOs recomiendo que os leáis el siguiente tutorial que lo explica "for dummies":
No hay comentarios:
Publicar un comentario