Récupérer première image d'une url
Résolu
matiou34
Messages postés
230
Statut
Membre
-
matiou34 Messages postés 230 Statut Membre -
matiou34 Messages postés 230 Statut Membre -
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
- Légender une image - Guide
- Image iso - 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 !