Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php

La fonction preg_replace (PHP3 >3.0.9 - PHP 5)

Bison et les expressions rationnelles en php La syntaxe :
preg_replace (motif de chaine, nouveau motif, chaine sujet, int limite);

preg_replace remplace le motif de chaine par le nouveau motif et retourne la chaine modifiée. Si int limite est posé, le nombre de remplacements sera limité

replacement peut contenir des références de la forme \\ n ou, depuis PHP 4.0.4) $n . Cette dernière forme est recommandée. Ces références seront remplacées par le texte capturé par la n '-ième parenthèse capturante du masque. n peut prendre des valeurs de 0 à 99, et \\0 ou $0 , correspondent au texte de qui satisfait le masque complet.
Les parenthèses ouvrantes sont comptées de gauche à droite (en commençant à 1) pour déterminer le numéro de parenthèse capturante.

Exemples avec preg_replace


Exemple 1

 Enlever des <br/> intempestifs 

Niveau de compréhension : facile

<?php

$chain
="salut, c'est du texte avec de retours <br /><br /><br /><br /><br /><br /> et encore du texte et des retours inutiles à la fin \n\n\n<br/><br /><br /><br /><br />";

//--- on fait juste un echo pour voir le résultat (cochonné)
echo trim($chain).'<br/>Franchement, c\'est pas beau !';
//--- la fonction trim() enlève les caractères blancs en début et fin de chaine.

$chain=preg_replace('`[<br\s?/>]{2,}`','<br/><br/> ',$chain);
echo
'<hr>'.trim($chain).'Ceci est mieux, non ?';

?>

Explication :
Très simple... on va s'attacher à enlever les séries de plus de deux retours à la ligne de manière à rendre la mise en page plus correcte.


Exemple 2

 Rendre cliquable un lien placé entre < et > 

Niveau de compréhension :facile

<?php

$chaineA
="Test d'une url placée entre < et > <https://www.europeancards.com> balises ouvrante et fermantes";

//--- première version ---//
$chaine=preg_replace('`<([^>]+)>`', '<a href="$1" target="_blank">$1</a>', $chaineA);
echo
$chaine;

//--- deuxième version ---//
echo '<br/>La même avec http:// dans le masque<br/>';
$chaine1=preg_replace('`<(https?://[^>]+)>`', '<a href="$1" target="_blank">$1</a>', $chaineA);
?>

Explication :
Très simple et très répandu sur la majorité des forums, etc...
Dans le premier on matche tout ce qui se trouve entre < et >.
Dans la deuxième version, on tient compte de la partie http:// ou https://
Sans celle-çi, le texte ne sera pas reconnu comme lien.


Exemple ..

  
Niveau de compréhension :


Explication :


Rédaction Yves Maistriaux :: Mai 2003 Dernière mise à jour :: Décembre 2005


European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::