Función para extraer imágenes de una Página


Última Actualización: 31/08/2022 19:03 Nro de Vistas: 3512

Función para extraer imágenes de una Página

Al Compartir un link de nuestra web en facebook, queremos que facebook sepa que imagen mostrar y los otros datos como un resumen o una intro del articulo cosa que explicaré en otro tutorial, como maquetar nuestra web para que los medios sociales lo muestren correctamente.

Sin embargo una de las cosas principales es mostrar una imagen que nosotros queremos, y no una imagen que facebook elija, ya que facebook podría mostrar una imagen que no corresponde.

Para hacer eso, es necesario una funcion que nos permita extraer todas las imagenes de nuestro html y elejir de entre ellas para decirle a facebook u otro socialmedia que queremos mostrar esa imagen.

function miogimage($html){
	$pattern = '/<img.*src=["|\'](.*?)["|\'].*>/i';
	preg_match_all($pattern, $html, $images);
	$total = count($images[1]);
	$src = $images[1];
        return $src;
}

esta función extraerá todos los link src de las etiquetas IMG de nuestro codigo html. 

En mi caso muestro la primera imagen de modo que sería así.

$imagenes = miogimage($html);
$imgforfb = $imagenes['0'];

Nota e probado de muchos tutos, y en casi todos el pattern era asi:

'/<img.*src=["|\'](.*)["|\'].*>/i'

y esto causaba que el src buscaba hasta el ultimo de las comillas ejm. src="imagen.jpg" title="un nombre".
con este patern me retornaba incluso el title. Para que el pattern solo busque hasta la siguiente comilla es necesario aumentar el signo de ?.

'/<img.*src=["|\'](.*?)["|\'].*>/i'

Con esto solo me mostrará desde la primera comilla hasta la siguiente que encuentre