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

Résolu/Fermé
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 - 23 sept. 2012 à 05:21
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 - 23 sept. 2012 à 19:53
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

Utilisateur anonyme
23 sept. 2012 à 14:08
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 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
23 sept. 2012 à 19:53
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