Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment enlever les espaces qui sont en trop dans une chaîne ?
auteur : BiD0uille
Pour enlever des espaces en trop dans une chaîne de caractères, il faut utiliser la fonction preg_replace (masque, replace, chaine) qui analyse chaine pour trouver l'expression rationnelle masque et remplace les résultats par replace.
Exemple :
$txt = "C e c i est un e x e m p l e";
echo preg_replace('#\s(\w)(?!\w)#', '$1', $txt); //Affiche Ceci est un exemple
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant

Comment tester l'extension d'un fichier ?
auteur : BiD0uille
Pour tester l'extension d'un fichier, il faut utiliser la fonction preg_match(string masque, string chaine) qui analyse chaine pour trouver l'expression qui correspond à masque Par exemple, est-ce qu'un fichier est bien un .jpg :
preg_match('/\.jpg$/', $fichier);
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant

Comment parser un bbcode ?
auteurs : Forum PHP, Kerod
Voici quelques exemples d'expressions régulières parsant des BBCodes
  • BBCode [b]Forum Developpez.com[/b]
$str = "[b]Forum Developpez.com[/b]";
echo preg_replace('#\[b\](.*)\[/b\]#Usi', '<b>$1</b>', $str);
  • BBCode [i]Forum Developpez.com[/i]
$str = "[i]Forum Developpez.com[/i]";
echo preg_replace('#\[i\](.*)\[/i\]#Usi', '<i>$1</i>', $str);
  • BBCode [url]http://www.developpez.net[/url]
$str = "[url]http://www.developpez.net[/url]";
echo preg_replace('#\[url\](.*)\[/url\]#Usi', '<a href="$1">$1</a>', $str)."<br>";
  • BBCode [url=http://www.developpez.net]Forum Developpez.com[/url]
$str = "[url=http://www.developpez.net]Forum Developpez.com[/url]";
echo preg_replace('#\[url=([^\]]*)\](.*)\[/url\]#Usi', '<a href="$1" title="$2">$2</a>', $str);
  • BBCode [color=#FF0000]Forum Developpez.com[/color]
$str = "[color=#FF0000]Forum Developpez.com[/color]";
echo preg_replace('#\[color=([^\]]*)\](.*)\[/color\]#Usi', '<font color="$1">$2</font>', $str);
  • BBCode [quote]Forum Developpez.com[/quote]
$str = "[quote]Forum Developpez.com[/quote]";
$quote = '<div style="width:50%;background-color:#CCCCCC"><div style="background-color:#FFFFFF">Citation :</div>';
$quote .= '<div style="background-color:#CC0000">$1</div></div>';
echo preg_replace('#\[quote\](.*)\[/quote\]#Usi', $quote, $str);
  • BBCode [quote=FAQ]Forum Developpez.com[/quote]
$str = "[quote=FAQ]Forum Developpez.com[/quote]";
$quote = '<div style="width:50%;background-color:#CCCCCC"><div style="background-color:#FFFFFF">Citation :</div>';
$quote .= '$1 a écrit :<div style="background-color:#CC0000">$2</div></div>';
preg_replace('#\[quote=([^\]]*)\](.*)\[/quote\]#Usi', $quote, $str);
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant

Comment insérer une chaîne de caractères dans une autre tous les x caractères ?
auteur : Forum PHP
Pour insérer une chaîne de caractères dans une autre déjà existante, on peut utiliser une expression régulière comme celle qui suit
preg_replace('#(\d{'.$x.'})#', '$1'.$chaine, $string);
Avec $chaine, la chaîne de caractères à rajouter et $x, la fréquence d'insertion (tous les x caractères).
Exemple :
Insertion d'un espace tous les 2 caractères
$string = '0123456789';
echo preg_replace('#(\d{2})#', '$1 ', $string); //Affiche 01 23 45 67 89
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant
lien : faq Comment insérer une chaîne de caractères dans une autre tous les x caractères ?

Comment contrôler une chaîne de caractères ?
auteur : Forum PHP
Pour vérifier que l'on a bien une chaîne de caractères dans une variable, on utilise la fonction preg_match() ou eregi() qui ne respecte pas la casse.
Exemple :
Avec preg_match
<?
$pattern = '#^[a-zA-Zéàèêùôîï]*$#'; //Définition de l'ensemble des caractères acceptés
$chaine = "Test d'une chaîne de caractères";
if(preg_match($pattern, $chaine))
{
    echo $chaine . 'est bien une chaîne valide';
}
else
{
    echo $chaine . 'n\'est pas une chaîne valide';
}
//Affichera que la chaîne est valide.
?>
À noter que ce code est sensible à la casse d'où l'ajout des majuscules dans le pattern. De plus, ni les caractères (exceptés ceux qui sont définis dans $pattern) ni les chiffres ne sont acceptés.

lien : faq Comment vérifier le type d'une chaîne ?
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant

Comment vérifier un nombre à l'aide d'expressions régulières ?
auteur : Kerod
La vérification d'un nombre peut se faire avec les fonctions prévues à cet effet, mais les expressions régulières sont plus précises quand il s'agit de filtrer certains nombres ne correspondant pas au format attendu.
Exemples :
Vérification d'un entier ayant obligatoirement 2 chiffres
$mask = '#[0-9]{2}#';
echo preg_match('#[0-9]{2}#', 20); // Affiche 1, qui signifie que $nombre respecte le format voulu
echo preg_match('#[0-9]{2}#', 2054); // Affiche 0, qui signifie que $nombre ne respecte pas le format voulu
Vérification d'un nombre avec au maximum deux chiffres après la virgule et ne commencant pas par 0
$mask = '#[1-9][0-9]*(\.|,)[0-9]{0,2}#';
echo preg_match('#[0-9]{2}#', 20); // Affiche 0
echo preg_match('#[0-9]{2}#', 205.4); // Affiche 1
echo preg_match('#[0-9]{2}#', 05.4); // Affiche 0
echo preg_match('#[0-9]{2}#', 205.45); // Affiche 1
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini

Comment enlever un caractère/ensemble de caractères d'une chaîne ?
auteurs : Kerod, Forum PHP
À l'aide d'un expression régulière et de la fonction preg_replace(), qui analyse une chaîne de caractères pour trouver l'expression à remplacer, on peut supprimer un caractère ou un ensemble de caractères.
En effet, pour réaliser cette opération, on peut utiliser le code suivant :
$var = 'Jean-Michel'; //Chaîne initiale
$var = preg_replace('/[^a-z0-9]/', '-', $var);  //Remplace tout ce qui n'est ni chiffre ni lettre de l'alphabet par un trait d'union
lien : faq Comment remplacer/supprimer un mot/caractère dans une chaîne ?

Comment mettre des mots en surbrillance dans un texte ?
auteurs : Yogui, Kerod
Pour mettre un effet de surbrillance sur certains mots dans un texte, on peut utiliser la fonction preg_replace qui recherchera et effectuera la surbrillance de l'expression voulu.

Voici un exemple :
Surbrillance de certains pronoms
<?php  
  $words = array ('de', 'du', 'des', 'le', 'la', 'les'); //Définition des pronoms à mettre en évidence 
  $str = "L'édition de cette année du 20 au 27 mars partout en France traitera des dernières tendances en vogue, 
          comme le phénomène des blogs ou encore l'internet mobile.";  //Texte à mettre en surbrillance
  echo preg_replace( '/('.implode('|', $words).')/i', '<span style="font-weight: bold; color: red;">$1</span>', $str); 
?>
Et donc ceci affichera :

L'édition de cette année du 20 au 27 mars partout en France traitera des dernières tendances en vogue, comme le phénomène des blogs ou encore l'internet mobile.

Remarque :
implode('|', $words)
Cette instruction sert à transformer le tableau $words en chaîne de caractères, et chaque pronom sera séparé par le caractère |, qui signifie OU (alias OR), ce qui donnera à l'expression régulière tous les pronoms possibles à remplacer.

lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel : Les expressions régulières et manipulation de chaînes standards, par Hugo Étiévant

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2003  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com