Extraire les images d'un texte

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


evets
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 218
Inscription: Jeu Sep 16, 2004 0:28

Extraire les images d'un texte

Message le Dim Mai 18, 2008 16:22

Bonjour,

Je suis à la recherche de l'expression régulière me permettant d'extraire des images d'un texte html

C'est à dire pouvoir avoir le nom de l'image toto.gif contenu dans <IMG ......... >

Ca fait plusieurs heures que je me prends la tete sans succes :-(

Voici mes tentatives :
Dans le texte :
<P><IMG style="WIDTH: 377px; HEIGHT: 116px" height=427 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d'images/Collines.jpg" width=423 align=baseline border=0></P><P><IMG style="WIDTH: 242px; HEIGHT: 115px" height=297 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d'images/Coucher%20de%20soleil.jpg" width=374 align=baseline border=0></P>

Je voudrais extraire les images Coucher%20de%20soleil.jpg et Collines.jpg

Voici mon code :

$pattern = "#\[IMG(.*?)\]#";

if(preg_match($pattern, $texteascannerFR, $regs_url))

$total = count($regs_url[0]);
echo "<br>TOTAL : ".$total."<br>";
for($i = 0; $i < $total; $i++){
$nom_image = $regs_url[1][$i];
echo "<br>NomImage : ".$nom_image."<br>";
}
}


Pouvez-vous m'aider? Je vous en remercie par avance.[/code]


evets
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 218
Inscription: Jeu Sep 16, 2004 0:28

Message le Dim Mai 18, 2008 17:20

Re bonjour,

J'ai touvé cette expression reguliere qui me permet d'extraire la photo du texte :
$pattern = "/<img.*?src=([\'"])([^\1]+)\1/i";


Mais ceci me retourne trop de choses encore :
file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d'images/Collines.jpg" width=423 align=baseline border=0>

Je continue mes recherches mais si vous avez la solution merci de ne pas hésiter :wink:


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 477
Inscription: Dim Avr 15, 2007 17:14

Message le Dim Mai 18, 2008 17:57

As-tu essayé avec basename ?


evets
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 218
Inscription: Jeu Sep 16, 2004 0:28

Message le Dim Mai 18, 2008 18:29

Merci pour ton aide,

Voici ce que j'ai à présent,

J'y suis presque !!

Code: Tout sélectionner
$text='<P><IMG style="WIDTH: 377px; HEIGHT: 116px" height=427 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d'images/Collines.jpg" width=423 align=baseline border=0></P>
<P><IMG style="WIDTH: 242px; HEIGHT: 115px" height=297 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d'images/Coucher%20de%20soleilm.jpg" width=374 align=baseline border=0>
</P>';
$pattern='/file.*?>/si';

if(preg_match_all($pattern, $text, $regs_url))
{
   $total = count($regs_url[0]);
   echo "<br>TOTAL : ".$total."<br>";
   for($i = 0; $i < $total; $i++){
      $nom_image = $regs_url[0][$i];
      echo "<br>Nom Image : ".basename($nom_image)."<br>";
   }
}


Cela me retourne :
TOTAL : 2

Nom Image : Collines.jpg" width=423 align=baseline border=0>

Nom Image : Coucher%20de%20soleilm.jpg" width=374 align=baseline border=0>


medium69
WRInaute accro
WRInaute accro
 
Messages: 2169
Inscription: Sam Mai 07, 2005 9:36

Message le Dim Mai 18, 2008 20:32

tu souffres... tu souffres beaucoup.

Tu as fait beaucoup d'efforts, alors voilà ma contribution :

Code: Tout sélectionner
$text = '<P><IMG style="WIDTH: 377px; HEIGHT: 116px" height=427 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d\'images/Collines.jpg" width=423 align=baseline border=0></P>
<P><IMG style="WIDTH: 242px; HEIGHT: 115px" height=297 alt="" hspace=0 src="file:///C:/Documents%20and%20Settings/All%20Users/Documents/Mes%20images/%C9chantillons%20d\'images/Coucher%20de%20soleilm.jpg" width=374 align=baseline border=0>
</P>';

$value = preg_match_all('#images/([^/]+)"#Us', $text, $matches);


echo '<pre>';
print_r($matches[1]);
echo '</pre>';


Tu récupères ton masque dans un tableau.

Il va te falloir apprendre le chinois pour décoder les REGEX ^^


evets
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 218
Inscription: Jeu Sep 16, 2004 0:28

Message le Lun Mai 19, 2008 9:58

Merci pour votre aide !

C'est vrai que c'est pas facile regex ! :roll:


medium69
WRInaute accro
WRInaute accro
 
Messages: 2169
Inscription: Sam Mai 07, 2005 9:36

Message le Lun Mai 19, 2008 20:12

http://www.expreg.com/index.php

Fais en ton livre de chevet, et tu deviendra limpide en déchiffrement REGEX ^^

Après, c'est vrai que quand tu as compris le principe, c'est très facile... mais j'ai bien du passer une trentaine d'heure à tout comprendre et à bien maitriser... Le pire est qu'il faut tout assimiler en même temps !


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Images, Hello, Google Image Labeler



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités