2009-11-07 8 views
17

J'essaie de comprendre exactement ce que ces paramètres de php.ini font. Que se passe-t-il lorsqu'ils sont définis sur des valeurs différentes? Quand sont-ils nécessaires? Quand sont-ils nocifs?Que font ces paramètres PHP mbstring?

Comme d'habitude, le PHP manual est moins utile. : Pour clarifier, je comprends comment les encodages de caractères fonctionnent, et je comprends comment les fonctions multi-octets de PHP diffèrent de leurs contreparties à un octet. Je suis à la recherche de détails sur ce que les paramètres ci-dessus font.

EDIT 2: OK, on ​​dirait qu'ils font réellement fournir plus de documents que le simple page on runtime configuration, qui vient de résumés d'une ligne. Les trois premiers ont des fonctions nommées de la même manière, et il y a plus de détails sur les pages qui décrivent les versions de la fonction. J'ai ajouté des liens ci-dessus.

EDIT 3: Ajout d'une prime. Je suis à la recherche de détails spécifiques sur exactement ce que font ces paramètres, en particulier les trois derniers. De quoi sont-ils convertis de et à, et quand le font-ils?

+0

Vous êtes sarcastique à propos du manuel étant moins qu'utile? –

+4

Je pense que c'est très utile, en tant que manuel pour PHP. Vous devez également comprendre les codages HTTP et de caractères pour donner un sens à ces paramètres. Et le manuel de PHP n'est pas un manuel pour l'une ou l'autre de ces choses. –

+0

Re edit 2: Je ne pense pas que les fonctions de noms similaires soient utiles à votre question. Par exemple, mb_language() implique qu'il n'affecte que l'encodage des emails, alors que j'ai l'impression que mbstring.language a un effet plus large. Et mb_http_input() ne fait que * détecter * l'encodage des données dans la requête HTTP en cours, ce qui ne dit rien de ce que fait le paramètre mbstring.http_input. –

Répondre

7

Vous pouvez changer mbstring.language dans n'importe quelle langue que vous utilisez. (Source)

langue

; language for internal character representation. 
mbstring.language = Neutral ; Set default language to neutral(UTF-8) (default) 
mbstring.language = English 
mbstring.language = Japanese 
mbstring.language = Korean ;For Korean market later 

http_input

; http input encoding. 
mbstring.http_input = pass 
mbstring.http_input = auto 
mbstring.http_input = UTF-8 
mbstring.http_input = UTF-8, SJIS, EUC-JP 

http_output

; http output encoding. mb_output_handler must be 
; registered as output buffer to function 
mbstring.http_output = pass 
mbstring.http_output = UTF-8 

encodage Traduction

; enable automatic encoding translation accoding to 
; mbstring.internal_encoding setting. Input chars are 
; converted to internal encoding by setting this to On. 
; Note: Do _not_ use automatic encoding translation for 
;  portable libs/applications. 
mbstring.encoding_translation = On 
3

Le but est de prendre en charge différents codages de jeux de caractères. Il existe une grande variété de codages (ASCII, ANSI, UTF-8, etc.) et chacun a des jeux de caractères différents et un nombre d'octets par caractère. Les paramètres que vous regardez spécifient les encodages par défaut pour différentes fonctions PHP.

PHP fournit un certain nombre de fonctions qui vous aident à gérer correctement ces différents encodages. Pour une illustration, consultez mb_strlen() vs strlen(). La réponse est courte, sauf si vous localisez le texte de votre application, ou communiquez avec des systèmes avec différents encodages (votre base de données incluse!), Vous n'avez probablement pas besoin de vous en préoccuper.

Questions connexes