Récupérer première image d'une url

Résolu
matiou34 Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -  
matiou34 Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Via leur API, Embed.ly permet de récupérer les informations d'une url. Pourriez-vous me dire comment font-ils pour récupérer une image ? est-ce que c'est la première ? Si c'est le cas, comment précéder ? Mais cela m'étonnerait car l'image est toujours très pertinente.

Voici leur démo :
http://embedly.github.io/jquery-preview/demo/

Merci de m'éclairer

M.

A voir également:

2 réponses

webdesignentreprise Messages postés 347 Statut Membre 60
 
C'est très simple, il suffit de parser le code source du site.
Tu peux détecter les balises meta ou dans ton cas les balises images.

A+
0
matiou34 Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   4
 
J'ai quelque chose comme ça :

$url = $_POST["url"];

function fetch_record($path)
{
	$file = fopen($path, "r"); 
	if (!$file)
	{
		exit("Problem occured");
	} 
	$data = '';
	while (!feof($file))
	{
		$data .= fgets($file, 1024);
	}
	return $data;
}

$string = fetch_record($url);

// fetch images
$image_regex = '/<img[^>]*'.'src=[\"|\'](.*)[\"|\']/Ui';
preg_match_all($image_regex, $string, $img, PREG_PATTERN_ORDER);
$images_array = $img[1];
$k=1;
	for ($i=0;$i<=sizeof($images_array);$i++)
	{
		if(@$images_array[$i])
		{
			if(@getimagesize(@$images_array[$i]))
			{
				list($width, $height, $type, $attr) = getimagesize(@$images_array[$i]);
				if($width >= 200 && $height >= 50 ){
				
				echo "<center><img src='".@$images_array[$i]."' max-width='520' id='".$k."' ></center>";
				
				$k++;
				
				}
			}
		}
	}


Le première c'est que ça m'affiche toutes images faisant plus de 200px. Hors je souhaite seulement récupérer la première.
Ensuite, le script (en localhost) met vraiment longtemps à s'exécuter. Plus l'url contient des images, plus c'est long. Est-ce dû au fait que je sois en localhost ou est-ce que c'est réellement long à exécuter car il doit parser toute la page ?
Comment pourrais-je l'alléger ?

Merci !
0