2009-11-07 26 views
17

Sto cercando di capire esattamente cosa fanno queste impostazioni di php.ini. Cosa succede quando sono impostati su valori diversi? Quando sono necessari? Quando sono dannosi?Cosa fanno queste impostazioni di PHP mbstring?

Come al solito, il PHP manual è meno disponibile.

EDIT: Giusto per chiarire, capisco come funzionano le codifiche dei caratteri e capisco come le funzioni multi-byte di PHP differiscano dalle loro controparti a byte singolo. Sto cercando informazioni specifiche su ciò che le impostazioni precedenti fanno.

EDIT 2: OK, sembra che forniscano effettivamente più documentazione rispetto al solo page on runtime configuration, che contiene solo riepiloghi su una riga. I primi tre hanno funzioni con nomi simili e ci sono più dettagli sulle pagine che descrivono le versioni delle funzioni. Ho aggiunto i collegamenti sopra.

MODIFICA 3: aggiunta di una taglia. Sto cercando dettagli specifici su esattamente cosa fanno queste impostazioni, in particolare le ultime tre. Cosa convertono da e verso e quando lo fanno?

+0

Sei stanco del fatto che il manuale sia meno utile, giusto? –

+4

Penso che sia molto utile, come manuale per PHP. Devi anche capire le codifiche HTTP e dei caratteri per dare un senso a queste impostazioni, comunque. E il manuale PHP non è un manuale per nessuna di queste cose. –

+0

Modifica 2: non credo che le funzioni dei nomi simili siano così utili alla tua domanda. Ad esempio, mb_language() implica che influisce solo sulla codifica dei messaggi di posta elettronica, mentre ho l'impressione che mbstring.language abbia un effetto più ampio. E mb_http_input() * identifica * solo la codifica dei dati nella richiesta HTTP corrente, che non dice nulla su cosa sia l'impostazione di mbstring.http_input. –

risposta

7

È possibile modificare mbstring.language in qualunque lingua si stia utilizzando. (Source)

lingua

; 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 

definizione codifica

; 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

Il punto è supportare diverse codifiche di caratteri. Ci sono una vasta gamma di codifiche (ASCII, ANSI, UTF-8, ecc.) E ognuna ha diversi set di caratteri e il numero di byte per carattere. Le impostazioni che stai guardando specificano le codifiche predefinite per le diverse funzioni PHP.

PHP fornisce una serie di funzioni che consentono di gestire correttamente queste diverse codifiche. Per un'illustrazione, controlla mb_strlen() vs strlen().

La risposta breve è, a meno che non si stia localizzando il testo dell'applicazione, o comunichi con sistemi con codifiche diverse (incluso il database!), Probabilmente non è necessario preoccuparsene.

Problemi correlati