Récupérer première image d'une url
Résolu
matiou34
Messages postés
198
Date d'inscription
Statut
Membre
Dernière intervention
-
matiou34 Messages postés 198 Date d'inscription Statut Membre Dernière intervention -
matiou34 Messages postés 198 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.
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:
- Récupérer première image d'une url
- Url - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Image iso - Guide
- Légender une image - Guide
2 réponses
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+
Tu peux détecter les balises meta ou dans ton cas les balises images.
A+
J'ai quelque chose comme ça :
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 !
$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 !