Général
- Présentation
- Les Symboles
- Les Métacaractères
- Les Ancres et Classes
- Les options
- Constantes prédéfinies
- Equivalences
- Créer un motif
- Les POSIX
- Les PCRE
- Les Plus des PCRE
- Les Assertions Part I
- Les Assertions Part II
- Motif conditionnel
- Mysql et les regex
- Url Rewriting
- Optimisation
- Aide mémoire
Les PCRE
Les POSIX
Pratique
Spécial php
- Conseils et Astuces
- Délimiteur PCRE
- Créer une bdd
- Utiliser du BBcode
- Le binaire
- Faire un panier
- Cases à cocher
- Citations imbriquées
- Colorateur syntaxique
- Les list-box ou combo-box
- Faire un diaporama
- Isset ou empty ?
- Une légende au survol
- Site en plusieurs langues
- Requêtes dynamiques
- Gestion des smiley
- Faire un moteur de template
- Timestamp php/mysql
- Timestamp mysql
- Matcher une adresse email
- Controler des données
Les billets de fred
- Les POSIX... mise en pratique !
- Limiter l'accès à un répertoire
- Alternance de couleurs
- Magic_quotes
- Désactiver les short_tags
- Require ou include : Bench
- Cohérence dans les chaines de caractères
- "echo" : lapin ou tortue ?
- Gérer un formulaire avec plusieurs boutons
- Le formulaire a t'il été soumis ?
- J'ai décidé de grossir
- La guerre des étoiles
- La guerre des boutons
- Headers already sent
- IP, IP, IP, houra !
- Créer un itérateur avec PHP5
- On vous conduit vers la lumière
- Comment utiliser MySQL avec PHP
- Non aux booléens !
- Php.ini : dist /recommended
- Include : gouffre ou fêlure ?
- Simple comme les sessions !
- Simplifier le traitement des erreurs
- Structurez vos applications
- Franchement, t'es trop for !
- Notice: Undefined variable (ou index)
- Proscrire les variables auto déclarées
Regex permettant de bannir (ôter) certains mots d'un texte (insultes, injures, etc...) et les remplacer par un autre mot. Utilise la fonction preg_replace
$message="Un petit test pour enlever des mots interdit,
genre enfoiré, connard et bien d'autres merdes
du même genre";
$interdit='enfoiré|connard|merde|salaud';
$autre='lol';
$message2 = preg_replace('`(^|\W)('.$interdit.')(\W|$)`si','$1 '.$autre.' $3', $message);
echo $message;
?>
Version améliorée - Enlève certains mots d'un texte en tenant compte de la casse, la gestion du pluriel. Utilisation des ancrages de limite de mot \b (assertion simple)
$message='Salaud, c\'est un petit test pour enlever des mots interdits,
genre enfoirés, connard et bien d\'autres
merdes même genre';
$interdit='enfoiré|connard|merde|salaud';
$autre='*****';
$message1 = preg_replace('`\b('.$interdit.')[sx]?\b`si',$autre, $message);
echo '<br>',$message1;
?>
Cette regex permet de mettre en forme du texte (gras, couleur, etc..) seulement s'il est placé entre des balises persos. Très simple ! Petite explication peut-être : le $1 Cela s'appele une référence arrière et peut être écrite sous cette forme aussi : \\1
//--- le texte
$message = "Un petit test pour [forme] trouver des textes [/forme]
à mettre en forme, <br />seulement s'il sont placés
[forme] entre des balises perso [/forme] comme dans cette phrase ";
echo 'Texte original :<br />',$message,'<br />';
//--- la regex ---//
$message=preg_replace('`\[forme]([^[]+)\[/forme]`s',
'<font color="#FF0000"><b>$1</b></font>',
$message);
echo '<br />Le résultat de cette regex :<br />'. $message.'<br />';
?>
Permet de trouver les termes dans une chaine / texte qui sont placés entre des balises persos et les récupérer dans un tableau. Balise perso utilisée ici le % Fonction utilisée : preg_match_all
//--- texte ---//
$texte = "Un petit test pour %trouver% dans un texte %des mots% ";
$texte .= "qui sont %placés% comme ici %entre% une serie de %balises persos% ";
$texte .= "pour ensuite %les récupérer% et les placer %dans un tableau% et voilà";
//--- la regex ---//
$texte = preg_match_all( "/%(.*)%/Us" , $texte, $mots);
foreach($mots[1] as $val)
{
echo "Trouvé : $val <br />";
}
//Ce qui affichera ==>
//trouvé : trouver
//trouvé : des mots
//trouvé : placés
//trouvé : entre
//trouvé : balises persos
//trouvé : les récupérer
//trouvé : dans un tableau
?>
Petite regex permettant de vérifier un nom de fichier et son extension. utilise la fonction eregi. //- Explication -// - on vérifie si le nom du fichier ne contient rien d'autre que des lettres, des chiffres exemple : image.gif - une seule fois le tiret - ou l'underscore _ entre les lettres/chiffres exemple : image-truc.gif ou image_truc.gif - maintenant, le tiret et l'underscore peuvent se suivre exemple : image-_truc.gif - par contre ceci sera refusé : ima-ge_truc.gif
//--- test sur un fichier image
$fichier="une_image.gif";
if(eregi("^[a-z0-9]+[-_]*[a-z0-9]*(\.(gif|jpe?g|png))$",$fichier))
{
echo "extension correcte";
} else {
echo "extension fausse";
?>
Cette petite portion de code vous permettra de compter le nombre de mots dans une chaine. Note : - Si vous disposez de PHP 4.3 ou supérieur, il vaut mieux utiliser str_word_count(); - j' ai inséré plusieurs espaces consécutifs entre les mots pour justifier ici (si il y a lieu) l' utilisation d' une REGEX, car sinon un : echo count(explode(' ', $chaine)); suffirait, mais êtes vous êtes vous sur de la forme de votre chaine ?
$chaine = 'Un texte contenant 5 mots';
echo count(preg_split('`\\W`', $chaine, -1, PREG_SPLIT_NO_EMPTY));
?>
Cette petite portion permet de vérifier la validité d' un format MD5. - chaine de 32 caractères - comportant uniquement des lettres minuscules comprises entre a et f [a-f] ou des chiffres [0-9]
$truc = md5('truc');
// $truc = 'cool';
if(preg_match('`^[a-f0-9]{32}$`', $truc))
echo 'Format valide MD5';
else
echo 'Invalide !!!!!!';
?>
mixed html_replace ( mixed pattern, mixed replacement, mixed subject [, string replace_func]) Remplace pattern par replacement dans la chaine subject. Par défaut cette fonction se comporte comme str_replace (valeur par défaut pour replace_func). Pour effectuer des remplacements à base d'expressions régulières, il suffit de définir des masques corrects, et de donner a replace_func le nom de la fonction à utiliser. Cette fonction prendra les 3 premiers arguments, dans cet ordre, ainsi des noms de fonctions valides seront str_replace, preg_replace, ereg_replace, etc...
function html_replace ($from, $to, $txt, $func = 'str_replace')
{
$pos = strpos($txt, '<');
if (FALSE !== $pos) {
$txt1 = substr($txt, 0, $pos);
$txt2 = substr($txt, $pos);
$txt1 = $func("$from", "$to", $txt1);
}
else {
$txt1 = '';
$txt2 = $txt;
}
$from = str_replace('\\', '\\\\', addslashes($from));
$to = str_replace('\\', '\\\\', addslashes($to));
$rplc = $func.'("'.$from.'", "'.$to.'", "\\';
$txt2 = preg_replace('/<([^>]*)>([^<]*)/ie', '"<\1>".'.$rplc.'2")', $txt2);
return $txt1.$txt2;
}
?>
############
# EXEMPLES #
############
Posté le: Sam 16 Aôu 2003, 20:14:03 Sujet du message: remplacement hors tags html
Après un topic dont le but était de remplacer les espaces par des espaces insécables ( ) dans un texte, le problème du remplacement hors-tags html s'est posé.
Voici une fonction générale qui répond à ce problème.
Citation:
mixed html_replace ( mixed pattern, mixed replacement, mixed subject [, string replace_func])
Remplace pattern par replacement dans la chaine subject.
Par défaut cette fonction se comporte comme str_replace (valeur par défaut pour replace_func).
Pour effectuer des remplacements à base d'expressions régulières, il suffit de définir des masques corrects, et de donner a replace_func le nom de la fonction à utiliser. Cette fonction prendra les 3 premiers arguments, dans cet ordre, ainsi des noms de fonctions valides seront str_replace, preg_replace, ereg_replace, etc...
Code:
function html_replace ($from, $to, $txt, $func = 'str_replace')
{
$pos = strpos($txt, '<');
if (FALSE !== $pos) {
$txt1 = substr($txt, 0, $pos);
$txt2 = substr($txt, $pos);
$txt1 = $func("$from", "$to", $txt1);
}
else {
$txt1 = '';
$txt2 = $txt;
}
$from = str_replace('\\', '\\\\', addslashes($from));
$to = str_replace('\\', '\\\\', addslashes($to));
$rplc = $func.'("'.$from.'", "'.$to.'", "\\';
$txt2 = preg_replace('/<([^>]*)>([^<]*)/ie', '"<\1>".'.$rplc.'2")', $txt2);
return $txt1.$txt2;
}
Exemples:
Remplacer les espaces par ' ':
<?php $code = html_replace(' ', ' ', $code); ?>
Rendre cliquables les liens:
<?php $code = html_replace('/(http|ftp|https):\/\/([^\s]+)/', '<a href="\\1://\\2" target="_blanck">\\2</a>', $code, 'preg_replace'); ?>
Rendre cliquables les e-mails:
<?php $code = html_replace('/(^|\W)(\w+)@(\w+)\.(\w+)(\W|$)/', '\\1<a href="mailto:\\2@\\3.\\4">\\2 at \\3 dot \\4</a>\\5', $code, 'preg_replace'); ?>
Utiliser les htmlentities SANS detruire le code html (ne convertir que les accents et sigles particuliers):
<?php $code = html_replace('/./e', 'htmlentities("\\1")', $code, 'preg_replace'); ?>
Voir le sujet sur http://www.phpfrance.com/forums/viewtopic.php?t=29228
Voici une adaptation en PHP de la fonction soundex2 francisée de Frédéric BROUARD (http://sqlpro.developpez.com/Soundex/). C'est une bonne démonstration de la force des expressions régulières compatible Perl.
function soundex2( $sIn )
{
// Si il n'y a pas de mot, on sort immédiatement
if ( $sIn === '' ) return ' ';
// On met tout en minuscule
$sIn = strtoupper( $sIn );
// On supprime les accents
$sIn = strtr( $sIn, 'ÂÄÀÇÈÉÊËŒÎÏÔÖÙÛÜ', 'AAASEEEEEIIOOUUU' );
// On supprime tout ce qui n'est pas une lettre
$sIn = preg_replace( '`[^A-Z]`', '', $sIn );
// Si la chaîne ne fait qu'un seul caractère, on sort avec.
if ( strlen( $sIn ) === 1 ) return $sIn . ' ';
// on remplace les consonnances primaires
$convIn = array( 'GUI', 'GUE', 'GA', 'GO', 'GU', 'CA', 'CO', 'CU',
'Q', 'CC', 'CK' );
$convOut = array( 'KI', 'KE', 'KA', 'KO', 'K', 'KA', 'KO', 'KU', 'K',
'K', 'K' );
$sIn = str_replace( $convIn, $convOut, $sIn );
// on remplace les voyelles sauf le Y et sauf la première par A
$sIn = preg_replace( '`(?<!^)[EIOU]`', 'A', $sIn );
// on remplace les préfixes puis on conserve la première lettre
// et on fait les remplacements complémentaires
$convIn = array( '`^KN`', '`^(PH|PF)`', '`^MAC`', '`^SCH`', '`^ASA`',
'`(?<!^)KN`', '`(?<!^)(PH|PF)`', '`(?<!^)MAC`', '`(?<!^)SCH`',
'`(?<!^)ASA`' );
$convOut = array( 'NN', 'FF', 'MCC', 'SSS', 'AZA', 'NN', 'FF', 'MCC',
'SSS', 'AZA' );
$sIn = preg_replace( $convIn, $convOut, $sIn );
// suppression des H sauf CH ou SH
$sIn = preg_replace( '`(?<![CS])H`', '', $sIn );
// suppression des Y sauf précédés d'un A
$sIn = preg_replace( '`(?<!A)Y`', '', $sIn );
// on supprime les terminaisons A, T, D, S
$sIn = preg_replace( '`[ATDS]$`', '', $sIn );
// suppression de tous les A sauf en tête
$sIn = preg_replace( '`(?!^)A`', '', $sIn );
// on supprime les lettres répétitives
$sIn = preg_replace( '`(.)\1`', '$1', $sIn );
// on ne retient que 4 caractères ou on complète avec des blancs
return substr( $sIn . ' ', 0, 4);
}
?>
Petite regex permettant de mettre des mots en évidence dans un texte sans tenir compte de la casse. Dans notre exemple, le mot sera affiché avec un background en jaune.
$texte='Les regex pour php c\'est sympa, mais on trouve aussi des regex pour mysql';
$mot='regex';
$motif='`(.*?)('.$mot.')(.*?)`si';
$sortie='$1<span style="background-color:#ffcc00">$2</span>$3';
echo preg_replace($motif,$sortie,$texte);
?>
Petite regex permettant de mettre en évidence une série de chiffres dans un texte. Dans le cas présent j'utilise simplement la balise < b > et < /b >. L'idéal bien évident est d'user de balises de style genre .
$texte='Une série de chiffres comme 895 et aussi 2, ainsi que 85 qui doivent être en gras!';
$motif='`(.*?)(\d+)(.*?)`';
$sortie='$1<b>$2</b>$3';
echo preg_replace($motif,$sortie,$texte);
?>
Une simple vérification avec preg_match sur un mot de passe. On accepte chiffres et lettres, minimum de 4 caractères et maximum de 8.
$passe='toto1234';
if(!preg_match('`^([[:alnum:]]{4,8})$`',$passe))
{
echo "c'est pas bon";
}
else
{
echo "Test avec preg_match : c'est bon !";
}
?>
Cette fonction permet de transformer un texte du type : un certain texte [*]element 1 [*]element 2 un autre texte en un certain texte
- element 1
- element 2
function makeListe($capt)
{
return str_replace("[*]","<li>","<ul>".$capt[0]."</ul>");
}
$texte=preg_replace_callback("#\[\*\].*\n(?!\[\*\])#sU","makeListe",$texte);
?>
Fonction permettant de faire une césure sur des mots trop longs tapés dans des zonnes de texte comme un forum par exemple.
function coupe_mot($ch,$longueur=15,$inserer=' ')
{
return preg_replace('`([^\s]{'.$longueur.'})`','$1'.$inserer,$ch);
}
$test = 'Unmotbientroplongécritparunenfoirédansunforum
suivi d\'un autre tout simple';
echo coupe_mot($test);
?>
Même source que la version 1 mais dans celle-çi on tient compte d'un balisage html éventuel, ceci, afin de ne pas appliquer la césure au milieu des balises html
function coupe_mot($ch,$longueur=15,$inserer=' ')
{
return preg_replace('`([^\s<>]{'.$longueur.'})`','$1'.$inserer,$ch);
}
$test = 'Unmotbientroplongécritparunenfoirédansunforum
suivi d\'un autre entre balise html
<strong><u><i>unmotvraimenténormedanscetexte</i></u></strong>
et un dernier mottrèslongbeaucouptroplongàcouper';
echo coupe_mot($test);
?>
Cette regex permet de réduire des mots tapés par l'internaute comportant une série de lettres identiques à la queue-leu-leu. Exemple : Saluuuuuuuuuuuuuuuuuuuuuuuuuuut ! Bonjouuuuuuuuuuuuuuuuuuuuuuur ! Ouuuuuuuuaaaaaaaaaaaaaaah ! La regex que je donne travaille au travers d'un test réalisé sur le texte afin de savoir s'il y a des mots trop longs preg_match(); et preg_replace();
$chaine ='Bonjourrrrrrrrrrrrrrrrrrrrr, il y a des mots trop
long qui vont être coupés à l\'affichage.
<br />
Houlaaaaaaaaaaaa, mais ça marche';
if(preg_match('`(.)(\1{3,})`',$chaine,$out))
{
echo 'Il y a des mots trop longs, on coupe !<br />';
echo preg_replace('`(.)(\1{3,})`s','$1',$chaine);
}
else
{
echo 'bon';
}
?>
Portion de script qui permet de couper un chaine de caractères trop longue (3 versions) - version simple qui ne tient compte que de la longueur souhaitée - deuxième version qui ajoute trois points "..." - troisième version qui coupe la chaine à la hauteur de l'espace entre les mots et ajoute trois points"..."
$chaine='Un test pour raccourcir cette chaine à un maximum de 20 caractères';
//--- version simple ---//
$max=20;
if(strlen($chaine)>=$max){$chaine=substr($chaine,0,$max);}
echo $chaine;
//--- version complétée par trois ... ---//
$max=20;
if(strlen($chaine)>=$max){$chaine=substr($chaine,0,$max) . "..." ;}
echo $chaine;
//--- version améliorée coupure à la hauteur de l'espace mot + trois ... ---//
$max=20;
if(strlen($chaine)>=$max){$chaine=substr($chaine,0,$max);
$espace=strrpos($chaine," ");
$chaine=substr($chaine,0,$espace)."..."; }
echo $chaine;
// Au choix, selon les cas !!! //
?>
Voici 4 possibilités d'affichage et de gestion du pluriel suite à une requête pour connaître le nombre d'enregistrements dans une table. Note : vous avez bien la possibilité d'utiliser le pluriel entre parenthèses et de faire : echo 'Il y a ',$nb,' enregistrement(s) dans la table
//--- nombre d'enregistrements d'une table ---//
$req="select count(*) from latable";
$res=mysql_query($req);
$nb=mysql_result($requete,0);
echo 'Il y a ',$nb,' truc dans la base de données';
//--- bien dans le cas d'un seul enregistrement, pas de problème ---//
//--- oui mais si la table contient plus d'un enregistrement, il manque un "s" ---//
//--- Voilà 4 solutions possibles ---//
//--- méthode 1...
if ($nb>1) {$s="s";}
echo 'truc',$s;
//--- méthode 2 sans les { et }
if ($nb>1) $s='s';
echo 'truc',$s;
//--- méthode 3 en ligne et sans if
echo 'truc',($nb>1) ? 's':'';
//--- méthode 4 if et else
if ($nb>1) {
echo 'trucs';
} else {
echo 'truc';
}
//--- voilà, 4 manières pour le même résultat, à vous de choisir.
?>
Mettre une série de mots en évidence dans un texte. Liste de mot au départ d'un array()
$ch='Bon alors voilou, la bonne méthode consiste à limiter les
mots de façon à éviter de prendre une partie, comme sol dans
solide, bravo dans bravoure et bon dans bonne comme au début,
même si BRAVO ou BON sont en majuscules ou encore un mix des
deux et au pluriel comme BrAVoS.';
$mot=array('bravo','bon','sol');
$motif='`\b(('.implode('|',$mot).')s?)\b`si';
$sortie='<span style="background-color:#ffcc00">$1</span>';
echo preg_replace($motif,$sortie,$ch);
?>
Une petite fonction pour complèter une chaine chiffrée sur une longueur définie Exemple : 125 On obtient 0000000125 ;
$ch=125;
$car=0;
$long=10;
echo sprintf("%".$car.$long."s", $ch);
// la même chose sous forme de fonction
function complete_chaine($ch, $long, $car)
{
$sortie = sprintf("%".$car.$long."s", $ch);
return $sortie;
}
$chaine = 1453;
echo complete_chaine($chaine,$long,$car);
?>
Une autre manière de faire un résumé de texte. On va pratiquer la césure sur le nombres de mots et pas le nombre de caractères comme dans l'autre version. Les paramètres : - la variable texte - la variable nombre de mots à afficher Il y a plus court (en une ligne dans la V2) mais le but ici est d'utiliser une fonction, le passage d'arguments et une boucle pour reconstituer la phrase.
function cesure_mot($ch,$nb)
{
$chaine=explode(' ',$ch);
for($i=0;$i<$nb;$i++)
{
$sortie.=' '.$chaine[$i];
}
$sortie.='...';
return trim($sortie);
}
$texte='Raccourcir cette phrase pour n\'avoir que les dix
premiers mots suivi par 3 points pour faire un résumé';
echo cesure_mot($texte,10);
?>
Va afficher :
Raccourcir cette phrase pour n'avoir que les dix premiers mots...
La même fonctionnalité que la V1, mais en une seul ligne avec array_slice() Je vous laisse aller dans la doc pour comprendre ses fonctionnalités.
$texte='Raccourcir cette phrase pour n\'avoir que les dix
premiers mots suivi par 3 points pour faire un résumé';
echo implode(' ', array_slice(explode(' ', $texte), 0, 9)),'...';
?>
Pourquoi 0, 9 et pas 0, 10 ?
Parce que l'indice numérique d'un array débute à 0
Cet ensemble de regex (demandée par un internaute sur un forum) permet de mettre en forme (coloriser) des mots trouver dans un texte sans altérer le balisage HTML si d'aventure celui-ci contenait le terme recherché. On passe la chaine sujet à preg_split() qui, en fonction du masque fourni, éclatera la chaine afin de retourner un tableau en sortie. Il suffit ensuite de matcher les différents éléments du tableau et de leur appliquer les remplacements voulus. On peut coloriser plusieurs mots en utilisant une liste avec | ou en faisant un implode avec le même séparateur sur des valeurs passsées en POST par exemple. $mots_a_trouver='regex|php|mysql';
$ch='Les regex php, c\'est sympa, mais on trouve des
<a href="regex.php" title="les regex en php">Regex</a> aussi avec mysql.
Un exemple, en image <img src="test.gif" alt="une regex en image" />.';
function marque_mot($ch,$mot)
{
$tab=preg_split('`(<\w+.*?>)`',$ch,-1,PREG_SPLIT_DELIM_CAPTURE);
foreach($tab as $key=>$val){
if(preg_match('`^<\w+`',$val))
{
$tab[$key]=$val;
}
else
{
$tab[$key]=preg_replace('`\b'.$mot.'\b`i',
'<span style="background-color:#ffcc00">$0</span>',
$val);
}
}
return implode($tab);
}
$mot_a_trouver='regex';
echo marque_mot($ch,$mot_a_trouver);
?>
On vérifie une valeur fournie par l'internaute et passée via un formulaire. Un pourcentage qui peut s'exprimer comme ceci 0.1 ou 0,1 à 100 On pourrait le faire avec un is_numeric, mais on accepte ici une virgule ou un point comme séparateur de décimal.
$ch='2';
if(!preg_match('`^(((100|[1-9]\d?)([,.][1-9]\d?)?)|0[,.][1-9]\d?)$`',$ch))
{
echo 'pas OK';
}
else
{
echo 'OK';
}
?>
En me penchant sur une optimisation de la version 3, je propose une amélioration permettant de coloriser des mots entre les balises, genre strong que j'ai ajouté dans la phrase d'origine pour le test.
$ch='Les regex php, c\'est sympa, mais on peut les mettre en
avant avec la balise <strong>strong</strong>.
Un exemple, en image <img src="test.gif" alt="une regex en image" />.';
function marque_mot($ch,$mot)
{
$tab=preg_split('`(</?[a-z]+[^>]*>)`i',$ch,-1,PREG_SPLIT_DELIM_CAPTURE);
foreach($tab as $key=>$val){
if(strpos($val, '<') === 0)
{
$tab[$key]=$val;
}
else
{
$tab[$key]=preg_replace('`\b'.$mot.'\b`i','<span style="background-color:#ffcc00">$0</span>',$val);
}
}
return implode($tab);
}
$mot_a_trouver='strong';
echo marque_mot($ch,$mot_a_trouver);
?>
Et voiçi encore une autre version de césure sur des mots sans couper les attributs des balises HTML
$texte = 'Unmotbientroplongécritparunenfoirédansunforum suivi d\'un autre avec balise html
<strong class="pouet" style="background-image;width:130px;"><u><b><i>énorme,
unmotvraimenténormedanscetexte</i></b></u></strong> et un mottrèslongbeaucouptroplong';
$min='25';
function coupe_mot($match,$longueur=15,$inserer='*')
{
return wordwrap($match[1],$longueur,$inserer,1);
}
$texte1=preg_replace_callback('`\b([[:alnum:]]{'.$min.',})\b`','coupe_mot', $texte);
echo htmlentities($texte1);
?>
Une simple fonction pour remplacer tous les caractères accentués d'un texte. Utilises la fonction strtr()
$chaine='Hélène Dupont';
function ote_accent($str){
$ch = strtr($str,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
return $ch;
}
echo ote_accent($chaine);
?>
Extrait de la doc : - Recherche une chaîne de caractères dans un ensemble de caractères. C'est simple, grâce à cette fonction strpbrk() on peut vérifier qu'un u qu'une série de caractères appartient à la chaîne testée. Sans regex donc ! Attention toutefois, PHP5 only
$ch='Voilà, je place le nombre 725 dans cette chaine et je vais vérifier pour savoir s\'il y a des chiffres contenus';
if(false!==strpbrk($ch, '0123456789')){
echo 'il y a des chiffres';
}
else
{
echo 'pas de chiffres';
};
?>
A la demande d'un internaute, j'ai été amené à créer une petite regex pour la vérification syntaxique d'une clé RIB (un truc qu'on a pas en Belgique ça ^^)
$rib = '69';
if (preg_match('`^(0[1-9]|[1-8]\d|9[0-7])$`', $rib))
{
echo $rib,' --->OK';
}else{
echo $rib,' --->pas OK';
}
?>
