1) Afficher le début d'une chaîne
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
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
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
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
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), 0, 9)),'...';
?>
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
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
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';
};
?>