Problème substr

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Problème substr

Message le Mar Aoû 03, 2010 16:03

Bonjour,
je rencontre un probleme avec substr.
mon code :
Code: Tout sélectionner
<?php echo '<p>'.strip_tags(substr($result['info'], 0, 130)). '...</p>'; ?>


Sur mon site j'ai le texte suivant :

C'est un accident très rare de nos jours, au point d'en être suspect: dans la nuit de dimanche à lundi, à Chemisey, une petite commune de la plaine

Dans le code source il apparait donc comme ceci :

C'est un accident tr&egrave;s rare de nos jours, au point d'en &ecirc;tre suspect: dans la nuit de dimanche &agrave; lundi, &agrave; Chemisey, une petite commune de la plaine

Le probleme que je rencontre est que par exemple si je definit 130 caractères maxi j'aurai dans le cas ou on tombe sur un caractère accenté en fin des 130:
C'est un accident très rare de nos jours, au point d'en être suspect: dans la nuit de dimanche à lundi, &ag...

de meme, si au niveau du code source j'ai par exemple un lien avec les balises href... ces balise seront comtabilisées comme des caractères.

Existe-il un solution pour evité ces genres de bug ?


tom_pascal
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 291
Inscription: 17 Nov 2003

Re: Problème substr

Message le Mar Aoû 03, 2010 16:48

Bonjour fabrice,

Tu peux peut-être retirer les entités html qui posent problème dans les opérations de comptage/tronquage de texte, puis les remettre ensuite :

Code: Tout sélectionner
$texte="C'est un accident tr&egrave;s rare de nos jours, au point d'en &ecirc;tre suspect: dans la nuit de dimanche &agrave; lundi, &agrave; Chemisey, une petite commune de la plaine";
echo '<p>'.htmlentities(strip_tags(substr(html_entity_decode($texte), 0, 130))). '...</p>';


renverra par exemple :
Code: Tout sélectionner
<p>C'est un accident tr&egrave;s rare de nos jours, au point d'en &ecirc;tre suspect: dans la nuit de dimanche &agrave; lundi, &agrave; Chemisey, une petite com...</p>

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Re: Problème substr

Message le Mar Aoû 03, 2010 17:38

Bonjour,
merci ta solution fonctionne très bien. Depuis le temps que j'avais ce probleme et que j'essayai de trouvé une solution !
MERCI.


tom_pascal
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 291
Inscription: 17 Nov 2003

Re: Problème substr

Message le Mar Aoû 03, 2010 17:40

De rien :)

Rod la Kox
WRInaute accro
WRInaute accro
 
Messages: 3253
Inscription: 24 Juin 2008

Re: Problème substr

Message le Mar Aoû 03, 2010 19:20

Le plus simple étant d'utiliser mb_substr et pas des html_entity_decode. ;-)

Code: Tout sélectionner
<?php echo '<p>'.strip_tags(mb_substr($result['info'], 0, 130, 'UTF-8')). '...</p>'; ?>


voir toutes les fonctions php fonctionnant en multi-octet (utf-8).


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité