Récupérer des urls d'image dans un texte

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer des urls d'image dans un texte

Re: Récupérer des urls d'image dans un texte

par Maskime » 10 juin 2011, 17:12

Hello,

Si ton document est un HTML, je te recommande de jeter un coup d'oeil à l'extension DOMDocument :
http://php.net/manual/fr/class.domdocument.php

Normalement tu devrais pouvoir lui demander de te renvoyer les tags "<img>"
Au-delà tu devrais même pouvoir lui demander de te retourner le contenu des attributs "src" de tes tags img, sur le contenu de l'attribut tu fais un coup de strpos() en cherchant 'http://' et ça devrait faire le job...

Pour récupérer l'extention de tes fichiers je sais qu'en général ce que je fais c'est:
$asUrlContent = explode('/', $sUrl);
$sFileName = $asUrlContent[count($asUrlContent) - 1];
$asExtention = explode('.', $sFIleName);
$sExtention= $asExtention[count($asExtention) - 1];
Alors c'est pas forcément super joli et une expression régulière bien barrée peut faire la même chose en 1 seule ligne de code. Mais ce code à l'avantage de fonctionner même si tu as des fichiers qui ont des noms avec des '.' : image.qui.peut.exister.sur.internet.jpg

Après pour ta mécanique d'enregistrement des images pour savoir si elles ont déjà été enregistrées, tu peux en effet faire un coup de md5 sur l'url de l'image, le désavantage de cette technique est que tu ne peux pas retrouver l'url d'origine (sauf à faire une table de transco entre clé md5 et url)

Une fois que tu as fais tout ce que tu voulais avec l'image, tu met à jour ton Node récupéré lors de la recherche des tags img et tu utilise encore DOMDocument pour faire un save...

Normalement ca devrait le faire tout ça...

Récupérer des urls d'image dans un texte

par zero94 » 10 juin 2011, 12:12

Bonjour,
Voici mon objectif final : Dans une variable contenant du texte et potentiellement des balises <img> contenant soit des liens directement du disque dur, qui ne sont pas a touchés, soit des liens de type http qui sont des liens externes provenant d'internet, je souhaite stocker toutes les images de ce dernier type dans un dossier spécifique seulement si l'image n'a pas déjà été déjà stocké auparavant, remplacer ensuite le lien par celui de l'image précédemment stocké sur le disque dur.

Je cherche donc des conseils pour les différentes étapes qui me mèneront a mon objectif :)
Voici donc mes questions :
Pour rechercher une image seulement de type http, preg_match est-il la meilleur solution ? Comment m'y prendre étant donné qu'il y a plein de .* qui définissent une image, .jpg .gif .png etc ... il faut faire tous les cas ?
Pour vérifier si l'image a déjà été enregistré je code le lien en md5 avant de l'enregistrer? quelle est la meilleur solution ?

Et si vous avez d'autres idées qui pourrait m'aider, je suis preneur, même un simple lien :)

Merci