PHP Compter les caractères et accents

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

PHP Compter les caractères et accents

Message le Jeu Mar 27, 2008 20:27

Bonsoir,

Je souhaite compter le nombre de caractères d'une chaine.
Le problème est qu'avec strlen, si ma chaine est "c@3s$szédeee", le nombre retourné est 20 alors que je voudrais récupérer 12 caractères... Je n'ai pas résolu mon problème en utilisant mb_strlen, peut-être que je n'avais pas mis le bon encodage ?
Connaissez-vous une fonction comptant pour un caractère ceux étant sur plusieurs octets ?

Merci d'avance, Guillaume.

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Jeu Mar 27, 2008 20:36

Remplaces les accents, compte ensuite ?

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Jeu Mar 27, 2008 20:43

Merci de ta réponse, je pense que c'est ce que je ferai en dernier recours... Il doit bien y avoir une solution ! :roll:


phpmikedu83
WRInaute accro
WRInaute accro
 
Messages: 1281
Inscription: Sam Aoû 06, 2005 7:34

Message le Jeu Mar 27, 2008 20:47

gcvoiron a écrit:Merci de ta réponse, je pense que c'est ce que je ferai en dernier recours... Il doit bien y avoir une solution ! :roll:


Qu'utilises tu comme charset, c'est important de le savoir...

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Jeu Mar 27, 2008 20:51

Mes pages sont en iso-8859-1...


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Jeu Mar 27, 2008 21:16

Tu trouveras ton bonheur sur la doc: http://www.php.net/manual/fr/function.strlen.php

Faut toujours penser à y jeter un oeil avant de poser une question, une vraie mine d'or ! 8)


phpmikedu83
WRInaute accro
WRInaute accro
 
Messages: 1281
Inscription: Sam Aoû 06, 2005 7:34

Message le Jeu Mar 27, 2008 21:55

gcvoiron a écrit:Mes pages sont en iso-8859-1...


Dans ta réponse je sens que t'entrevois le fond du problème...

Tu précises : "mes pages", ce que je comprends, c'est qu'il s'agit des déclarations dans le head de tes fichiers html...

Mais d'où sortent ces chaînes avec accents, d'une base de donnée ? elle aussi en iso ?...

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Jeu Mar 27, 2008 21:55

YoyoS a écrit:Tu trouveras ton bonheur sur la doc: http://www.php.net/manual/fr/function.strlen.php

Faut toujours penser à y jeter un oeil avant de poser une question, une vraie mine d'or ! 8)

J'ai lu et relu la doc... Mais rien trouvé concernant les caractères multi-octets.

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Jeu Mar 27, 2008 22:09

phpmikedu83 a écrit:
gcvoiron a écrit:Mes pages sont en iso-8859-1...


Dans ta réponse je sens que t'entrevois le fond du problème...

Tu précises : "mes pages", ce que je comprends, c'est qu'il s'agit des déclarations dans le head de tes fichiers html...

Mais d'où sortent ces chaînes avec accents, d'une base de donnée ? elle aussi en iso ?...

Ces chaines de caractères viennent d'un formulaire. C'est pour vérifier que le mot de passe est comprit en X et Y caractères.


phpmikedu83
WRInaute accro
WRInaute accro
 
Messages: 1281
Inscription: Sam Aoû 06, 2005 7:34

Message le Jeu Mar 27, 2008 22:16

gcvoiron a écrit:Ces chaines de caractères viennent d'un formulaire. C'est pour vérifier que le mot de passe est comprit en X et Y caractères.


T'as dû rater quelque chose quelque part car ton problème sens fortement l'encodage caractère hétérogène ;-)
Y'a pas que de l'iso à mon avis...

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 494
Inscription: Mer Oct 19, 2005 15:23

Message le Jeu Mar 27, 2008 22:30

phpmikedu83 a écrit:
gcvoiron a écrit:Ces chaines de caractères viennent d'un formulaire. C'est pour vérifier que le mot de passe est comprit en X et Y caractères.


T'as dû rater quelque chose quelque part car ton problème sens fortement l'encodage caractère hétérogène ;-)
Y'a pas que de l'iso à mon avis...

Effectivement, j'avais bien une erreur... Je suis passé de Gedit à Quanta++ et il enregistrait mes pages en UTF...
Merci à tous pour l'aide !

:wink:

jarreweb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 192
Inscription: Ven Sep 12, 2003 8:17

Message le Ven Mar 28, 2008 9:59

éventuellement un strlen sur un utf8_decode
Code: Tout sélectionner
strlen(utf8_decode($ma_chaine))


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Re: PHP Compter les caractères et accents

Message le Ven Mar 28, 2008 12:57

gcvoiron a écrit:Connaissez-vous une fonction comptant pour un caractère ceux étant sur plusieurs octets ?

Merci d'avance, Guillaume.


http://www.phpwact.org/php/i18n/charsets

Code: Tout sélectionner
//Checking a Strings Length:
if ( !preg_match('/^\w{,10}$/u', $firstname) ) {
   die($firstname . ' is too long');
}


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Ven Mar 28, 2008 16:50

tout ça était dans la doc :p


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Mar 29, 2008 0:40

c'est un + l'utilisation du métacaractère world \w si l'on veut compter les caractères unique d'une chaine en UTF8.. et c'est pas expliquer dans la doc officielle php.

PHP Compter les caractères et accents

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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