- 17:04 Bon anniversaire à Madame (un peu en retard) :)
- 15:32 19:48 :
- 19:02 plop
- 15:04 trop classe
- 21:56 félicitations Lapin ! j'espère que tu as fété ça au champagne ;)
- 20:51 URL
- 20:50 salut lapin je suis tout content ce soir : URL premier lien première page !!
- 17:56 jg
- 20:18 Yes, woohoo !! des centaines d'heures de travail derrière ce chiffre :p et il en reste encore autant... 800 nouveaux fichiers non traduits ! mais on va y arriver :)
- 19:48 Manuel PHP français la traduction de près de 100% nouveau ... Woohoo! :)
Mes expressions rationnelles
Lorsque l'on développe des applications avec Php, on se doit, à un moment ou un autre, d'utiliser les expressions rationnelles (qui a dit expressions régulières ??).
Le problème, c'est que 6 mois plus tard, on se retrouve à rechercher dans son ancien code une expression que l'on a déjà écrite.
Voici donc un billet, en forme de bloc-note, pour les retrouver rapidement.
Panoplie pour le BBCode :
<?php
// $texte est le texte à traiter
// On cherche les [b] [/b]
$texte = preg_replace("|\[b\](.*?)\[/b\]|is", "<strong>$1</strong>", $texte);
// On cherche les [u] [/u]
$texte = preg_replace("|\[u\](.*?)\[/u\]|is", "<span style=\"text-decoration: underline\">$1</span>", $texte);
// On cherche les [i] [/i]
$texte = preg_replace("|\[i\](.*?)\[/i\]|is", "<em>$1</em>", $texte);
// On cherche les [s] [/s]
$texte = preg_replace("|\[s\](.*?)\[/s\]|is", "<span style=\"text-decoration: line-through\">$1</span>", $texte);
// On cherche les urls complexes ( [url=http://keliglia.com]Aller sur Keliglia.com[/url] )
$texte = preg_replace("|\[url=(.[^]]*?)\](.*?)\[/url\]|is", "<a href=\"$1\" title=\"$1\">$2</a>", $texte);
// On cherche les urls simples
$texte = preg_replace("|\[url\](.*?)\[/url\]|is", "<a href=\"$1\">$1</a>", $texte);
// On cherche les blockquote
$texte = preg_replace("|\[quote\](.*?)\[/quote\]|is", "<blockquote>$1</blockquote>", $texte);
// On cherche les mails
$texte = preg_replace("|\[email\](.*?)\[/email\]|is", "<a href=\"mailto:$1\">$1</a>", $texte);
?>
Soulignement et mise en gras rapide :
<?php
// On remplace les mots *comme* ça en gras
$texte = preg_replace("| \*(.\w*)\* |is", " <strong>$1</strong> ", $texte);
// On remplace les mots _comme_ ça en souligné
$texte = preg_replace("| _(.\w*)_ |is", " <span style=\"text-decoration: underline\">$1</span> ", $texte);
?>
Placement automatique d'acronymes :
<?php
$acronym = Array(
'php' => 'PHP : Hypertext Preprocessor',
'html' => 'HyperText Markup Language',
'css' => 'Cascading Style Sheets',
'xml' => 'EXtensible Markup Language',
'debian' => 'Debian : http://debian.org'
);
while( list($key, $val) = each( $acronym ) ) {
$texte = preg_replace("/(^|,|:|\s|>)($key)(\.|$|,|:|\s|<|\d)/is", "$1<acronym title=\"$val\">$2</acronym>$3", $texte);
}
?>
Recherche de liens (http, https, ftp ou mailto) :
<?php
$texte = preg_replace("/(http|https|ftp|mailto)(:)(\/\/){0,}(\S*)/i",
"<a href=\"$1$2$3$4\" title=\"$1$2$3$4\">$1$2$3$4</a>", $texte);
?>
Cette liste n'est évidemment pas exhaustive tellement les expressions rationnelles sont puissantes.
Toutes les expressions précédentes sont des expressions rationnelles compatibles Perl.
Liens utiles :
- La documentation en français sur le site de Php
- Un site consacré au Regexp
Commentaires
-
Mes expressions rationnelles
journaliste de TF1, le 31/01/07 à 11:12 :: Répondrele lien sur les expressions rationnelles n'est plus valide dommage !!!
-
Re : Mes expressions rationnelles
Yannick Torrès, le 31/01/07 à 11:38 :: RépondreCorrigé.
La page Wikipédia a été renommée au singulier.
-
