OVH Cloud OVH Cloud

Couper une phrase

4 réponses
Avatar
news.wanadoo.fr
Bonjour,

J'utilise le code ci-dessous pour extraire les 80 premiers caractères d'une
phrase :

if(strlen($phrase) > 80)
{
$def_coupee = substr($phrase, 0, 80);
$def_coupee .= "[.]" ;
}

Mon souci est que j'aimerais optimiser le code pour éviter qu'il coupe le
dernier mot en plein milieu.

Avez-vous la solution ?

Merci d'avance !

DB

4 réponses

Avatar
Laurent Seguin
"news.wanadoo.fr" , le 16 nov. 2003 10:49:59,
écrivait ceci:

J'utilise le code ci-dessous pour extraire les 80 premiers caractères
d'une phrase :

if(strlen($phrase) > 80)
{
$def_coupee = substr($phrase, 0, 80);
$def_coupee .= "[.]" ;
}

Mon souci est que j'aimerais optimiser le code pour éviter qu'il coupe
le dernier mot en plein milieu.

Avez-vous la solution ?


Peut être avec ca ?
http://fr.php.net/manual/fr/function.wordwrap.php

Avatar
Guillaume Bouchard
news.wanadoo.fr wrote:
Bonjour,


Bonjour.

J'utilise le code ci-dessous pour extraire les 80 premiers caractères d'une
phrase :

Mon souci est que j'aimerais optimiser le code pour éviter qu'il coupe le
dernier mot en plein milieu.


<?php

$len = 80;
$str = "aaaa1a aaa2aa aaaa3a aaa4aa aaaa5aa aaaaaaaaaa6aaa aaaaaaa7aaaaa
aaaaa8aaaaaaaa a9aaaa aa10aaa aaaa11aa aaaaaa12aaaa aaa13a";

$snip = substr($str,$len,40);
$more = strpos($snip,' ');

$chaine = substr($str,0,$len + $more);
echo $chaine;
echo strlen($chaine);

?>

Adapte le a ton probleme.

--
Guillaume.

Avatar
Christophe PEREZ
Le Sun, 16 Nov 2003 09:49:59 +0000, news.wanadoo.fr a écrit:

Mon souci est que j'aimerais optimiser le code pour éviter qu'il coupe le
dernier mot en plein milieu.

Avez-vous la solution ?


Et bien tu regardes le 81 ième caractères, si c'est un espace, c'est bon,
sinon, tu remontes jusqu'au précédent espace, et tu coupes là.

Maintenant, tu vas un peu te creuser les méninges sur les cas particuliers
comme celui où il n'y a aucun espace avant, ou alors la césure (ça
s'appelle comme ça) sur le "-"...

Merci d'avance !


Bon courage.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Thibaut Allender
news.wanadoo.fr wrote:

Mon souci est que j'aimerais optimiser le code pour éviter qu'il coupe le
dernier mot en plein milieu.

Avez-vous la solution ?


tu cherches le premier espace trouvé apres (ou avant) le 80e caractere,
et tu coupes la

strpos() ou strrpos() est parfait pour ca

a+

--
freelance + web design + php dev + digital photo
+ 32 496 26 75 76 + http://www.capsule.org