Plus pratique, plus rapide et bien plus simple que les éventuelles solutions classiques de test et de remplacement, les expressions régulières, popularisées par le langage Perl, sont la solution idéale pour vos manipulations de texte. Voici un exemple d’utilisation d’expression régulière pour remplacer toutes les URL dans un texte par un lien correctement formé.
Bonjour ceci est un test "; /* le motif à rechercher. Ici une URL. /* le motif à utiliser en remplacement de
/* la chaine de caractère dans laquelle on doit
* faire le remplacement.
*/
$stringToReplaceIn = "
avec une url http://www.exgobz.com et encore deux
autres séparées par un retour ligne
http://www.exgobz.com/article-178nhttp://www.exgobz.com/article-195
* l'expression est simplifiée pour pour considérer que l'URL
* est tout ce qui est après http:// et qui se termine par un
* espace ou autre caractère "blanc" tel qu'un retour ligne.
* Elle est donc plus simple que l'expression que nous avons
* déjà présenté pour valider une URL.
*/
$searchPattern = '/(http://[^s<>]+)/i';
* ceux trouvés grace au motif précédent.
* Notez l'utilisation de "références arrières"
* (back-references) avec le $1.
*/
$replacemenPattern = '$1';
/* affichage du résultat.*/
echo preg_replace ( $searchPattern, $replacemenPattern, $stringToReplaceIn );
?>
le resultat final sera le code HTML suivant :
Bonjour ceci est un test
avec une url http://www.exgobz.com et encore deux
autres séparées par un retour ligne
http://www.exgobz.com/article-178
http://www.exgobz.com/article-195
Mon exemple est ici fait avec une seule chaine de caractère pour plus de simplicité. Mais en lisant la doc PHP vous constaterez que cette fonction accepte aussi des tableaux de valeurs en entrée, et sors des tableaux en retour. Cela vous permettra de faire des remplacement dans plusieurs chaines d’un seul coup.
La fonction PHP preg_replace : http://fr.php.net/manual/en/function.preg-replace.php
Syntaxe des motifs en PHP : http://fr.php.net/manual/en/reference.pcre.pattern.syntax.php
Laisser un Commentaire