Mot manquant REGEX !!!

Mot manquant REGEX !!! - PHP - Programmation

Marsh Posté le 20-04-2009 à 18:54:14    

Bonjour,
 
j'aurai besoin de remplacer toutes les images contenues dans une variable pour les remplacer par des liens, savez vous comment faire ?
 
Pour les enlever entièrement j'ai pensé à quelque chose comme ça : $test=str_replace('<img src="*" width="*" height="*" alt="*" />', "", $tutoriel['texte']);
Avec pour chaque * un mot manquant, mais en fait ça ne marche pas.

Reply

Marsh Posté le 20-04-2009 à 18:54:14   

Reply

Marsh Posté le 21-04-2009 à 12:16:04    

Si vous lisez la documentation de str_replace http://fr3.php.net/manual/en/function.str-replace.php alors vous vous rendrez compte que le première paramètre n'est pas le "sujet", mais est le "search", en l'occurence "*" ; que le second paramètre n'est pas une chaine vide mais est le "replace", en l'occurence le mot manquant, qui est $tutoriel['texte'] si j'ai bien compris : que le troisième paramètre est le "sujet", en l'occurence "<img...".
 
De plus, il n'y a pas que le nom de ficier à remplacer, mais aussi les dimensions de l'image. Cela pourrait se faire en même temps que la substitution du nom de l'image si on utilisait un tableau, mais c'est une solution qui parait plus compliquée que de faire trois petits remplacements.
 
Par ailleurs, l'étoile est un caractère spécial, qu'il vaut mieux éviter dans votre cas. Je le remplacerais par une chaine de caractère qui serait par exemple "nomfichier".
 
Donc, essayer avec :

$test=str_replace("nomfichier", $tutoriel['texte'], '<img src="nomfichier" width="largeur" height="hauteur" alt="nomfichier" />');
$test2=str_replace("largeur", $largeur, $test);
$test3=str_replace("hauteur", $hauteur, $test2);

Reply

Marsh Posté le 21-04-2009 à 17:39:39    

Heu ça peut pas marcher un truc pareil.
 
en fait pour y arriver il faudrait arriver a construire le chaine finale à partir de celle de départ.
 
Un truc dans le genre :  
 

$test=str_replace($mavariable, $tutoriel['texte'], '<img src="'.$mavriable.'" width.........../>');


Message édité par ilundar le 21-04-2009 à 17:52:00
Reply

Marsh Posté le 21-04-2009 à 18:35:19    

t'as regardé du coté de preg_replace ?


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 22-04-2009 à 13:10:53    

Je m'y connais mal en expression régulière j'ai donc fait ça :
 

$patterns [0] = '/<img src=';
 $patterns [1] = 'width="(\w+) height="(\w+)"';
 $patterns [2] = 'align=(\w+) />';
 $replace [0] = '<a href=';
 $replace [1] = '';
 $replace [2] = '</a>';
 $test = preg_replace($patterns, $replace, $tutoriel['texte']);


 
Mais ça ne marche pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed