OVH Cloud OVH Cloud

creer les (...)

3 réponses
Avatar
sebastien
hello,

qui a un script pour creer des resumes de news propres (c'est a dire
eviter de couper
betement a X caracteres mais d'inserer un (...) pour faire plus zoli

exemple:
hello, je vous présente ma nouvell
hello, je vous présente ma (...)

peut etre que c'est deja inclus je sais pas m'y connais pas moah! :)

3 réponses

Avatar
legault.david
echo ( strlen($text) > N ) ? substr( $text, N )." (...)": $text;

vérifies les commandes, je ne suis pas certain de la syntaxe exacte
Avatar
google
C'est Noël, profitons-en !

Voici un exemple. Il n'est applicable que si l'on a une limite maxi à
ne pas dépasser, quoi qu'il arrive.
Si tu souhaites procéder différemment et qu'il y ait un nombre
minimum à ne pas dépasser, le raisonnement sera autre.


<?

$mon_texte = "Si au moins une séquence est trouvée (éventuellement
dans les parenthèses capturantes de pattern), et que la fonction est
appelée avec un troisième argument regs, les résultats seront
enregistrés dans regs. $regs[1] contiendra la première parenthèse
capturante (celle qui commence le plus tôt), $regs[2] contiendra la
deuxième parenthèse capturante (celle qui commence après la
première), et ainsi de suite. $regs[0] contient une copie de la
chaîne.";

#La longueur maxi à ne pas dépasser
$longueur_max = 190;

#Les séparateurs de mots (mis à la file, sans séparation)
$separateurs = preg_quote(" .,;?!");

$mon_texte_coupe = substr($mon_texte, 0, $longueur_max);

#Là, on cherche la meilleure coupure
ereg("(.*)[$separateurs]+[^$separateurs]+$", $mon_texte_coupe, $reg);
$mon_texte_bien_coupe = $reg[1];

echo "$mon_textenn$mon_texte_coupe (...)nn$mon_texte_bien_coupe
(...)nn";

?>

Affichera:
---------------------------------------------------
Si au moins une séquence est trouvée (éventuellement dans les
parenthèses capturantes de pattern), et que la fonction est appelée
avec un troisième argument regs, les résultats seront enregistrés
dans regs. contiendra la première parenthèse capturante (celle qui
commence le plus tôt), contiendra la deuxième parenthèse capturante
(celle qui commence après la première), et ainsi de suite. contient
une copie de la chaîne.

Si au moins une séquence est trouvée (éventuellement dans les
parenthèses capturantes de pattern), et que la fonction est appelée
avec un troisième argument regs, les résultats seront enregi (...)

Si au moins une séquence est trouvée (éventuellement dans les
parenthèses capturantes de pattern), et que la fonction est appelée
avec un troisième argument regs, les résultats seront (...)

---------------------------------------------------

Amicalement,

Benjamin Malynovytch
Avatar
Phil
qui a un script pour creer des resumes de news propres (c'est a dire
eviter de couper
betement a X caracteres mais d'inserer un (...) pour faire plus zoli


function tronquerChaine($chaine, $longueurMax = 40) {
$chaine = substr(trim($chaine), 0, $longueurMax);
$chaine = substr($chaine, 0, strrpos($chaine, " "))."...";
return $chaine;
}

// par défaut 40 caract.
echo tronquerChaine($maChaine);

// sinon
echo tronquerChaine($maChaine, 60);