Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php



 1) Afficher le début d'une chaîne  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 71)

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



 2) Affichage du pluriel  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 72)

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



 3) Compléter une chaine chiffrée jusqu'à une longueur définie  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 94)

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



 4) Césure sur des mots V1  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 104)

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



 5) Césure sur des mots V2  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 105)

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), 09)),'...';
?>

Pourquoi 0, 9 et pas 0, 10 ?
Parce que l'indice numérique d'un array débute à 0



 6) Remplacer les accentués d'une chaine  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 118)

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



 7) Vérifier si une chaine contient des chiffres sans regex  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 119)

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




European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::