Ceci est une classe qui permet de récupérer une partie d'une string en fonction, soit du nombre de mots, soit du nombre de lettres. Son utilisation est extrêmement simple (voir ci-dessous).
Source / Exemple :
<?php
class TraitementString {
/**
- Constructeur de la class
- /
function TraitementString(){
}
/**
- Fonction qui renvoie une partie d'une string (par rapport au mots)
*
- Précisément, renvoie les $nbMots premiers mots de la string.
*
- @param string $phrase La phrase dont on ne veut qu'un bout
- @param integer $nbLettres Le nombre de mots à prendre
- @param integer $nbLMax Le nombre de lettres maximum à avoir
- @return string Le bout de phrase
- /
function get_premiersMots($phrase, $nbMots, $nbLMax = 0){
$premiersMots = "";
$phrase = trim($phrase);
$mots = explode(" ", $phrase);
$nbCarac = 0;
for ($i = 0; $i < count($mots); $i++){
$nbCarac += strlen($mots[$i]) + 1;
/**
- On break si on arrive au nombre de mots voulus ou si on a atteint une
- quantité critique de lettres
- /
if ($i == $nbMots || ($nbLMax > 0 && $nbCarac >= $nbLMax && $premiersMots)){
break;
}
$premiersMots .= " ".$mots[$i];
/**
- Ce break aura lieu seulement si on ne récupère que le 1er mot. Sinon
- la boucle sera terminée à cause du break au-dessus
- /
if ($nbLMax > 0 && $nbCarac >= $nbLMax) {
break;
}
}
$premiersMots = trim($premiersMots);
return $premiersMots;
}
/**
- Fonction qui renvoie une partie d'une string (par rapport aux lettres)
*
- Précisément, renvoie les $nbLettres premières lettres de la string. Si la dernière
- lettre à prendre est au milieu d'un mot, alors la fonction prendra juste les
- dernières lettres de ce mot, pour éviter d'avoir des coupures moches.
*
- @param string $phrase La phrase dont on ne veut qu'un bout
- @param integer $nbLettres Le nombre de lettre à prendre
- @return string Le bout de phrase
- /
function get_premieresLettres($phrase, $nbLettres){
$premiersMots = "";
$phrase = trim($phrase);
$mots = explode(" ", $phrase);
$nbCarac = 0;
for ($i = 0; $i < count($mots); $i++) {
$nbCarac += strlen($mots[$i]) + 1;
/**
- Si on a pas encore récupéré de mots, on ne break pas à ce moment là
- /
if ($nbCarac >= $nbLettres && $premiersMots){
break;
}
$premiersMots .= " ".$mots[$i];
/**
- Ce break aura lieu seulement si on ne récupère que les lettres du 1er mot. Sinon
- la boucle sera terminée à cause du break au-dessus
- /
if ($nbCarac >= $nbLettres) {
break;
}
}
$premiersMots = trim($premiersMots);
return $premiersMots;
}
}
$t = new TraitementString();
$str = "Mais bien le bonjour, il fait bô aujourd'hui, comment ça va?";
echo $t->get_premiersMots($str, 5)."<br>";
echo $t->get_premieresLettres($str, 35)."<br>";
echo $t->get_premiersMots($str, 11, 50)."<br>";
?>
Conclusion :
Le zip contient 2 fichiers. Un fichier de classe, et un fichier qui exploite cette classe. Dans le code ci-dessus, ils sont les 2 ensemble, histoire de donner une idée du fonctionnement de la chose.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.