Extraire les images d'un texte

  • Auteur de la discussion Auteur de la discussion evets
  • Date de début Date de début
WRInaute discret
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]
 
WRInaute discret
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:
 
WRInaute discret
Merci pour ton aide,

Voici ce que j'ai à présent,

J'y suis presque !!

Code:
$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>
 
WRInaute passionné
tu souffres... tu souffres beaucoup.

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

Code:
$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 ^^
 
WRInaute passionné
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 !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut