17

これらのphp.ini設定が何をするのかを正確に把握しようとしています。異なる値に設定するとどうなりますか? それらはいつ必要ですか?それらはいつ有害ですか?

いつものように、PHP マニュアルはあまり役に立ちません。

編集: 明確にするために、文字エンコーディングのしくみを理解し、PHP のマルチバイト関数がシングルバイト関数とどのように異なるかを理解しています。上記の設定が何をするかについての詳細を探しています。

EDIT 2 : OK、実際には、1 行の要約があるランタイム構成のページだけでなく、より多くのドキュメントを提供しているようです。これらのうち最初の 3 つには、同様の名前の関数があり、関数のバージョンを説明するページに詳細があります。上記のリンクを追加しました。

編集 3 : 報奨金を追加します。これらの設定、特に最後の 3 つの設定が正確に何をするかについて、具体的な詳細を探しています。彼らは何から、何に変換し、いつ変換しますか?

4

3 に答える 3

7

mbstring.languageは、使用している言語に変更できます。(ソース)

言語

; 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

エンコーディング翻訳

; 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
于 2009-11-07T00:47:47.983 に答える
3

ポイントは、さまざまな文字セットのエンコーディングをサポートすることです。さまざまなエンコーディング (ASCII、ANSI、UTF-8 など) があり、それぞれに異なる文字セットと文字あたりのバイト数があります。あなたが見ている設定は、さまざまな PHP 関数のデフォルトのエンコーディングを指定しています。

PHP には、これらの異なるエンコーディングを適切に処理するのに役立つ多くの関数が用意されています。例として、mb_strlen() と strlen() を確認してください。

簡単に言えば、アプリケーションのテキストをローカライズしたり、異なるエンコーディングのシステム (データベースを含む) と通信したりしない限り、おそらく心配する必要はありません。

于 2009-11-07T01:10:27.640 に答える
2

この例のデモンストレーションですべてが説明されていると思います。

http://fr2.php.net/manual/en/function.mb-internal-encoding.php#53265

使用されていませんが、 の使用を推測できますmbstring.http_input

于 2011-08-18T12:06:22.523 に答える