PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.php > utiliser strlen a la place de mb_str len avec mbstring
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
utiliser strlen a la place de mb_str len avec mbstring

Réponse
 
LinkBack Outils de la discussion
Vieux 16/07/2007, 18h32   #1
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut utiliser strlen a la place de mb_str len avec mbstring

Bonjour à tous

J'ai lu quelquepart qu'il était possible de faire en sorte d'utiliser
strlen à la place de mb_strlen avec mbstring (meme si ça bouffait un
peut les perf).

Malheureusement, je n'arrive pas à retrouver ou, ni comment...

Si quelqu'un a quelques pistes, je le remerci d'avance !
  Réponse avec citation
Vieux 16/07/2007, 19h14   #2
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

Le 16/07/2007 19:32, Thief13 a écrit :
>
> J'ai lu quelquepart qu'il était possible de faire en sorte d'utiliser
> strlen à la place de mb_strlen avec mbstring (meme si ça bouffait un
> peut les perf).


Il faudrait que tu précises un peu ton besoin.

1) Si le charset est de type monobyte, par exemple US-ASCII ou
ISO-8859-1, alors mb_strlen($str) == strlen($str).

2) Si le charset est un multibyte constant, mettons 2 octets par
caractère, et que l'octet 0 n'intervient jamais en dehors du code
de fin de chaîne, alors mb_strlen($str) == strlen($str)/2.

3) Si le charset est un multibyte constant, mais que tu peux rencontrer
des octets à 0 un peu partout (par exemple pour les caractères ASCII),
alors il y a toutes les chances pour que strlen($str) retourne 0 ou 1
quelle que soit la longueur de la chaîne retournée par mb_strlen($str).

4) Si le charset est un multibyte variable, par exemple UTF-8, alors
tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
fait que de l'US-ASCII).

Bref... dis-nous quel charset tu utilises, et on te dira quel degré de
folie il faut avoir pour utiliser strlen() au lieu de mb_strlen().
  Réponse avec citation
Vieux 16/07/2007, 19h14   #3
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

Le 16/07/2007 19:32, Thief13 a écrit :
>
> J'ai lu quelquepart qu'il était possible de faire en sorte d'utiliser
> strlen à la place de mb_strlen avec mbstring (meme si ça bouffait un
> peut les perf).


Il faudrait que tu précises un peu ton besoin.

1) Si le charset est de type monobyte, par exemple US-ASCII ou
ISO-8859-1, alors mb_strlen($str) == strlen($str).

2) Si le charset est un multibyte constant, mettons 2 octets par
caractère, et que l'octet 0 n'intervient jamais en dehors du code
de fin de chaîne, alors mb_strlen($str) == strlen($str)/2.

3) Si le charset est un multibyte constant, mais que tu peux rencontrer
des octets à 0 un peu partout (par exemple pour les caractères ASCII),
alors il y a toutes les chances pour que strlen($str) retourne 0 ou 1
quelle que soit la longueur de la chaîne retournée par mb_strlen($str).

4) Si le charset est un multibyte variable, par exemple UTF-8, alors
tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
fait que de l'US-ASCII).

Bref... dis-nous quel charset tu utilises, et on te dira quel degré de
folie il faut avoir pour utiliser strlen() au lieu de mb_strlen().
  Réponse avec citation
Vieux 16/07/2007, 22h11   #4
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

> 4) Si le charset est un multibyte variable, par exemple UTF-8, alors
> tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
> fait que de l'US-ASCII).


C'est ça, mais j'ai lu que c'était possible de faire en sorte que php
fasse des alias des fonction mb en remplacement des fonctions normales,
meme si ça bouffais de la ressources
  Réponse avec citation
Vieux 16/07/2007, 22h11   #5
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

> 4) Si le charset est un multibyte variable, par exemple UTF-8, alors
> tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
> fait que de l'US-ASCII).


C'est ça, mais j'ai lu que c'était possible de faire en sorte que php
fasse des alias des fonction mb en remplacement des fonctions normales,
meme si ça bouffais de la ressources
  Réponse avec citation
Vieux 16/07/2007, 22h55   #6
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

Le 16/07/2007 23:11, Thief13 a écrit :
>> 4) Si le charset est un multibyte variable, par exemple UTF-8, alors
>> tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
>> fait que de l'US-ASCII).

>
> C'est ça, mais j'ai lu que c'était possible de faire en sorte que php
> fasse des alias des fonction mb en remplacement des fonctions normales,
> meme si ça bouffais de la ressources


Tu veux dire un truc de ce genre là ?

-------------------------------------------------------------
undef(strlen)
function strlen($str) { return mb_strlen($str, "UTF_8"); }
-------------------------------------------------------------

Je ne crois pas que ce soit possible. À moins de recompiler toi-même
l'interpréteur PHP bien sûr.
  Réponse avec citation
Vieux 16/07/2007, 22h55   #7
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

Le 16/07/2007 23:11, Thief13 a écrit :
>> 4) Si le charset est un multibyte variable, par exemple UTF-8, alors
>> tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
>> fait que de l'US-ASCII).

>
> C'est ça, mais j'ai lu que c'était possible de faire en sorte que php
> fasse des alias des fonction mb en remplacement des fonctions normales,
> meme si ça bouffais de la ressources


Tu veux dire un truc de ce genre là ?

-------------------------------------------------------------
undef(strlen)
function strlen($str) { return mb_strlen($str, "UTF_8"); }
-------------------------------------------------------------

Je ne crois pas que ce soit possible. À moins de recompiler toi-même
l'interpréteur PHP bien sûr.
  Réponse avec citation
Vieux 17/07/2007, 21h41   #8
Philippe Le Van
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

> J'ai lu quelquepart qu'il était possible de faire en sorte d'utiliser
> strlen à la place de mb_strlen avec mbstring (meme si ça bouffait un
> peut les perf).


Bonjour,

dans ta conf apache, tu peux ajouter (ou le changer dans ton php.ini).
php_value mbstring.func_overload 7

et pour les explications :
http://fr3.php.net/manual/fr/ref.mbs...tring.overload

A+, Philippe
--
http://www.kitpages.fr
  Réponse avec citation
Vieux 17/07/2007, 21h41   #9
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

Olivier Miakinen a écrit :
> Le 16/07/2007 23:11, Thief13 a écrit :
>>> 4) Si le charset est un multibyte variable, par exemple UTF-8, alors
>>> tous les paris sont perdus d'avance (sauf si ta chaîne ne contient en
>>> fait que de l'US-ASCII).

>> C'est ça, mais j'ai lu que c'était possible de faire en sorte que php
>> fasse des alias des fonction mb en remplacement des fonctions normales,
>> meme si ça bouffais de la ressources

>
> Tu veux dire un truc de ce genre là ?
>
> -------------------------------------------------------------
> undef(strlen)
> function strlen($str) { return mb_strlen($str, "UTF_8"); }
> -------------------------------------------------------------
>
> Je ne crois pas que ce soit possible. À moins de recompiler toi-même
> l'interpréteur PHP bien sûr.


Je ne sais pas... je vais essayer de retrouver le site sur lequel j'ai
vu ça et je reviendrai ici
  Réponse avec citation
Vieux 17/07/2007, 21h41   #10
Philippe Le Van
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

> J'ai lu quelquepart qu'il était possible de faire en sorte d'utiliser
> strlen à la place de mb_strlen avec mbstring (meme si ça bouffait un
> peut les perf).


Bonjour,

dans ta conf apache, tu peux ajouter (ou le changer dans ton php.ini).
php_value mbstring.func_overload 7

et pour les explications :
http://fr3.php.net/manual/fr/ref.mbs...tring.overload

A+, Philippe
--
http://www.kitpages.fr
  Réponse avec citation
Vieux 18/07/2007, 20h26   #11
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: utiliser strlen a la place de mb_str len avec mbstring

>
> et pour les explications :
> http://fr3.php.net/manual/fr/ref.mbs...tring.overload
>


Parfait ! c'est EXACTEMENT ce que je cherchais, merci beaucoup !
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 21h19.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14979 seconds with 19 queries