8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche à extraire deux éléments des images d'une page html.

<img src="upload/upload3/99320/petit/1327917757.jpg" />
<img src="upload/upload8/257443/petit/1320613558.jpg" />
...

Je veux en sortir
Membre: 99320
Image: 1327917757

Membre: 257443
Image: 1320613558

J'ai essayé quelque chose mais ca ne marche pas du tout...

<?php
$chaine = file_get_contents("1.htm");
$motif="#<img src=\"upload\/upload[0-9]\/(.*)\/petit\/(.*).jpg\" \/>#"; 
preg_match_all($motif,$chaine,$out);

$nb=count($out[0]);

for($i=0;$i<$nb;$i++){
	echo 'Membre: '.$out[0][$i].'<br />';
        echo 'Image: '.$out[1][$i].'<br /><br />';
}
?>


Que faire pour rendre ce script effectif?
Modifié par Foxxy (25 Feb 2012 - 13:41)
Essaye ça
<?php
$path  = "upload/upload3/99320/petit/1327917757.jpg";
$file = explode("/", $path);
$folder = $file[2];
$file = basename($path); 
$file = basename($path, ".jpg");
?>

numéro du dossier : <?php echo $folder;?><br />

photo : <?php echo $file ;?>

ça donne ça
numéro du dossier : 99320
photo : 1327917757
Modifié par TiltRock (26 Feb 2012 - 00:28)
Non tu n'as pas compris mon problème.

J'ai un fichier 1.htm qui est une page web avec plein de chose dedans. Je veux isoler pour chaque image que le script rencontrera et prendre les deux éléments cité dans mon premier poste. Il faut donc obligatoirement utiliser les regex.
Salut

Ton Code est correcte, ton problème consiste au fait que tu as défini deux groupes sur ton expression régulière, par conséquent l'accès à ton tableau doit se faire un peu différemment, juste une question d'index à choisir, voilà ce que tu dois mettre pour que ça marche:


for($i=0;$i<$nb;$i++){

	echo 'Membre: '.$out[1][$i].'<br />';

        echo 'Image: '.$out[2][$i].'<br /><br />';

}


Un print_r sur ton tableau $out t'éclaircira ce que tu as manqué.