[Résolu] Preg_replace / Remplacement de texte

WRInaute accro
Bonsoir

Bon je reviens vers vous pour un problème particulier.

Je souhaite transformer ca :

Code:
$leTexte = "[lien=machin-chose]coucou[/lien]";

en :

Code:
$leTexte = "<a href='http://www.ndd.com?truc=machin-chose'>coucou</a>";

Merci d'avance :)
 
WRInaute accro
Code:
$ereg = '`[lien=([0-z\-]+)](.*?)[/lien]`';

$str = preg_replace($ereg, '<a href="http://www.example.com/?p=$1">$2</a>', $str);
 
WRInaute accro
ca marche pas pour l'instant :-(

j'ai ca :

Code:
Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 15
 
WRInaute accro
ca marche :)

En fait c le [ qui était mal interprété

Merci bcp :)

Je mets le bon code. Vaut mieux éviter les [ parce que c'est interprété par le preg_replace. Alors ca donne

Code:
$ereg = '`<lien=([0-z\-]+)>(.*?)</lien>`'; 

$str = preg_replace($ereg, '<a href="http://www.example.com/?p=$1">$2</a>', $str);

qui remplace :

Code:
<lien=machin-chose>coucou</lien>

Maintenant j'ai plus qu'à retravailler 300 fiches pédagogiques pour intégrer ces liens lol
 
Nouveau WRInaute
Preg_replace pour empêcher injection de headers

Bonjour,

Je débute et j'essaie de comprendre (déjà vu plein de tutoriels, mais ce n'est pas simple).

J'utilise ce qui suit pour sécuriser mes champs de formulaire, ça fonctionne, mais je me dis qu'il doit y avoir moyen de faire cela plus proprement et plus efficacement. D'avance, toute ma reconnaissance à celui ou celle qui voudra bien me donner son avis et ses conseils (là, chaque champ est contrôlé deux fois et ça me turlupine, mais je ne sais pas faire autrement):

if(isset($_POST["submit"]))
{
$From = trim(stripslashes(htmlspecialchars(preg_replace("/\r/", "", $_POST['From']))));
$From = trim(stripslashes(htmlspecialchars(preg_replace("/\n/", "", $_POST['From']))));
$Nom = trim(stripslashes(htmlspecialchars(preg_replace("/\r/", "", $_POST['Nom']))));
$Nom = trim(stripslashes(htmlspecialchars(preg_replace("/\n/", "", $_POST['Nom']))));

etc... pour plein de champs.

Avec mes remerciements. :)
 
WRInaute occasionnel
Code:
$leTexte=preg_replace('#\[lien=([^\]]+)\]([^[\[]+)\[\/[^\]]+\]#i',"<a href='http://www.ndd.com?truc=\1'>\2</a>",$leTexte);
 
Discussions similaires
Haut