eregi

Levan
Invité n'ayant pas de compte PHPfrance

24 juil. 2009, 12:28

Bonjour,

J essaye de récupérer le nom d une photo dans do code html a l aide du eregi

exemple:

$paragraphe = '<p><img src=/monchemin/nomfichier.jpg /> reste du paragraphe</p>';

j ai fait un truc comme ca

$photo = eregi('/monchemin/(.*)jpg',$paragraphe,$regs);


cela ne récupère pas juste le nom du fichier.

Quelqu'un aurait il une idee.

Par avance merci.

Mammouth du PHP | 2937 Messages

24 juil. 2009, 13:08

eregi() ne sert qu'à vérifier si l'on trouve une expression rationnelle dans une chaîne de caractères (soit dit en passant, en PHP 5.3, cette fonction tombe en désuétude au profit de preg_match() et preg_match_all() ;) ).

Pour ce que tu cherches à faire, regarde du côté de la fonction substr().

De plus, pour les exemples de code PHP, tu peux les rendre plus lisibles en les encadrant par les balises [php] et [/php]. ;)

Eléphant du PHP | 65 Messages

24 juil. 2009, 13:30

Voici une proposition avec preg_match().
$paragraphe = '<p><img src=/monchemin/nomfichier.jpg /> reste du paragraphe</p>'; 
preg_match('/.*\/(.*jpg).*/',$paragraphe,$result);
echo $result[1]; // nomfichier.jpg
Fred

Eléphant du PHP | 453 Messages

24 juil. 2009, 14:17

Hello,

Est ce qu'il y a une seule image sur la page html ? Je te propose de lire ceci :
$fichier = 'test.html';
$ressource = file_get_contents($fichier);
$capture = array();
$listeNomFichier = array();
$pattern = '#src="(.*)[jpg|gif|jpeg|png]{1}"#iU';

preg_match_all($pattern,$ressource,$capture);

for($i = 0;$i < count($capture[0]); $i++){
    $debut = strrpos($capture[0][$i],'/');
    $totalNomFichier = (strlen($capture[0][$i]) - $debut);
    $listeNomFichier[] = substr($capture[0][$i],$debut + 1,$totalNomFichier - 2);
}

echo '<pre>';
print_r($listeNomFichier);
echo '</pre>';
Si tu as des questions, n'hésite pas. :)

Comme cela était dit précédemment, je te conseille également d'utiliser les fonctions PCRE (preg_match(), preg_replace(), etc.) et non pas POSIX (ereg(), ereg_replace(), etc.). Les PCRE sont plus performantes.

Bonne journée à toi.
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia