2009-11-07 30 views
17

Estoy tratando de averiguar exactamente qué hacen estas configuraciones de php.ini. ¿Qué sucede cuando están configurados en valores diferentes? ¿Cuándo son necesarios? ¿Cuándo son dañinos?¿Qué hacen estas configuraciones PHP mbstring?

Como de costumbre, el PHP manual es menos atento.

EDIT: Para aclarar, entiendo cómo funcionan las codificaciones de caracteres, y entiendo cómo las funciones de múltiples bytes de PHP difieren de sus contrapartes de un solo byte. Estoy buscando detalles sobre lo que hacen las configuraciones anteriores.

EDIT 2: De acuerdo, parece que realmente proporcionan más documentación que la page on runtime configuration, que solo tiene resúmenes de una línea. Los tres primeros tienen funciones con nombres similares, y hay más detalles en las páginas que describen las versiones de funciones. Agregué enlaces arriba.

EDIT 3: Agregando un bounty. Estoy buscando detalles específicos sobre exactamente lo que hacen estos ajustes, especialmente los últimos tres. ¿De qué se convierten desde y hacia, y cuándo lo hacen?

+0

Estás siendo sarcástico porque el manual no es útil, ¿no? –

+4

Creo que es muy útil, como un manual para PHP. Sin embargo, también necesita comprender las codificaciones HTTP y de caracteres para dar sentido a estas configuraciones. Y el manual de PHP no es un manual para ninguna de estas cosas. –

+0

Re edición 2: No creo que las funciones de nombres similares sean tan útiles para su pregunta. Por ejemplo, mb_language() implica que solo afecta la codificación de los mensajes de correo electrónico, mientras que tengo la impresión de que mbstring.language tiene un efecto más amplio. Y mb_http_input() simplemente * detecta * la codificación de los datos en la solicitud HTTP actual, que no dice nada acerca de lo que hace la configuración de mbstring.http_input. –

Respuesta

7

Puede cambiar mbstring.language al idioma que esté utilizando. (Source)

lenguaje

; 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 

codificación traducción

; 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

El punto es admitir diferentes codificaciones de conjuntos de caracteres. Hay una gran variedad de codificaciones (ASCII, ANSI, UTF-8, etc.) y cada una tiene diferentes conjuntos de caracteres y número de bytes por carácter. La configuración que buscas especifica codificaciones predeterminadas para diferentes funciones de PHP.

PHP proporciona una serie de funciones que le ayudan a manejar estas diferentes codificaciones de forma adecuada. Para una ilustración, echa un vistazo a mb_strlen() vs strlen().

La respuesta breve es que, a menos que esté localizando el texto de su aplicación, o comunicándose con sistemas con diferentes codificaciones (¡su base de datos incluida!), Probablemente no tenga que preocuparse por ello.

Cuestiones relacionadas