Général

Les PCRE

Les POSIX

Pratique

Spécial php

Les billets de fred

Enlever certains mots Posté par Yves Maistriaux

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

<?php

$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;

?>
Enlever certains mots V2 Posté par Yves Maistriaux

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)

<?php
$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;
?>
Mettre du texte en forme entre balises perso Posté par Yves Maistriaux

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

<?php

//--- 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 />';

?>
Trouver des mots dans une chaine... Posté par Yves Maistriaux

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

<?php
//--- 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

?>
Tester une extension de fichier Posté par Yves Maistriaux

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

<?php
//--- 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";


?>
Compter le nombre de mots dans une chaine Posté par Fabrice Lezoray

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 ?

<?php

$chaine = 'Un texte contenant 5 mots';

echo count(preg_split('`\\W`', $chaine, -1, PREG_SPLIT_NO_EMPTY));

?>
Vérification d' un format MD5 Posté par Fabrice Lezoray

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]

<?php
$truc = md5('truc');
// $truc = 'cool';

if(preg_match('`^[a-f0-9]{32}$`', $truc))
echo 'Format valide MD5';
else
echo 'Invalide !!!!!!';

?>
Remplacement dans une page html sans abimer les tags Posté par naholyr

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...

<?php

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
Un soundex en français Posté par Frédéric Bouchery

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.

<?php
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);
}
?>
Mettre des mots en évidence Posté par Yves Maistriaux

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.

<?php
$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);
?>
Mettre en évidence une série de chiffres dans un texte Posté par Yves Maistriaux

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 .

<?php
$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);
?>
Un simple test de mot de passe Posté par Yves Maistriaux

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.

<?php
$passe='toto1234';
if(!preg_match('`^([[:alnum:]]{4,8})$`',$passe))
{
echo "c'est pas bon";
}
else
{
echo "Test avec preg_match : c'est bon !";
}
?>
Construction d'une liste à puce [style Wikipedia] Posté par jobherzt

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
un autre texte en utilisant les assertions complexes.

<?php
function makeListe($capt)
{
return str_replace("[*]","<li>","<ul>".$capt[0]."</ul>");
}

$texte=preg_replace_callback("#\[\*\].*\n(?!\[\*\])#sU","makeListe",$texte);

?>
Césure de mots trop long V1 Posté par Yves Maistriaux

Fonction permettant de faire une césure sur des mots trop longs tapés dans des zonnes de texte comme un forum par exemple.

<?php
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);
?>
Césure de mots trop long V2 Posté par Yves Maistriaux

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

<?php
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);
?>
Césure sur répétition de lettres identiques V1 Posté par Yves Maistriaux

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();

<?php
$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';
}

?>
Afficher le début d'une chaîne Posté par Yves Maistriaux

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"..."

<?php
$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 !!! //
?>
Affichage du pluriel Posté par Yves Maistriaux

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

<?php
//--- 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 des mots en évidence Version 2 Posté par Yves Maistriaux

Mettre une série de mots en évidence dans un texte. Liste de mot au départ d'un array()

<?php
$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);
?>
Compléter une chaine chiffrée jusqu'à une longueur définie Posté par Yves Maistriaux

Une petite fonction pour complèter une chaine chiffrée sur une longueur définie Exemple : 125 On obtient 0000000125 ;

<?php
$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);
?>
Césure sur des mots V1 Posté par Yves Maistriaux

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.

<?php
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...
Césure sur des mots V2 Posté par Yves Maistriaux

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.

<?php
$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
Mettre des mots en évidence Version 3 Posté par Yves Maistriaux

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';

<?php
$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);
?>
Vérifier un nombre Posté par Yves Maistriaux

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.

<?php
$ch='2';

if(!preg_match('`^(((100|[1-9]\d?)([,.][1-9]\d?)?)|0[,.][1-9]\d?)$`',$ch))
{
echo 'pas OK';
}
else
{
echo 'OK';
}

?>
Mettre des mots en évidence Version 4 Posté par Jukien

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.

<?php
$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);
?>
Césure sur des mots V3 Posté par Yves Maistriaux

Et voiçi encore une autre version de césure sur des mots sans couper les attributs des balises HTML

<?php
$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);
?>
Remplacer les accentués d'une chaine Posté par Yves Maistriaux

Une simple fonction pour remplacer tous les caractères accentués d'un texte. Utilises la fonction strtr()

<?php
$chaine='Hélène Dupont';
function ote_accent($str){
$ch = strtr($str,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
return $ch;
}
echo ote_accent($chaine);
?>
Vérifier si une chaine contient des chiffres sans regex Posté par Yves Maistriaux

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

<?php
$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';
};
?>
Vérifier une clé RIB Posté par Yves Maistriaux

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 ^^)

<?php
$rib = '69';
if (preg_match('`^(0[1-9]|[1-8]\d|9[0-7])$`', $rib))
{
echo $rib,' --->OK';
}else{
echo $rib,' --->pas OK';
}
?>
ADAM Benjamin 2008 | Admin