MbString Extensionは、多言語のテキストを扱うPHPプロジェクトで重要な役割を果たし、文字エンコーディングの一貫性を確保する必要があります。 MB_GET_INFO()関数は非常に実用的なツールです。現在のMBSTRingの構成情報をすばやく表示し、トラブルシューティングの文字エンコードの問題に重要な参照を提供することができます。
MB_GET_INFO()は、 PHPのMBSTRING拡張機能によって提供される関数です。
mb_get_info(string $type = null): array|string|false
$タイプ:取得する情報のタイプを指定するオプションのパラメーター。空の場合、すべての情報が返されます(連想配列として返されます)。
返品値: $タイプが指定されると、文字列が返されます。指定されていない場合、連想配列が返されます。
print_r(mb_get_info());
出力は以下に似ています。
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[input_encoding] => UTF-8
[output_encoding] => UTF-8
[language] => neutral
[encoding_translation] => Off
)
これは、現在のスクリプトでPHPが使用する文字エンコードがUTF-8であることを意味します。
MB_GET_INFO()自体はファイルのエンコードを直接読み取っていませんが、エンコードの判断とテキストファイルの変換を処理するために、他の機能( MB_DETECT_ENCODING()など)と組み合わせて使用できます。
$content = file_get_contents('sample.txt');
$encoding = mb_detect_encoding($content, mb_list_encodings(), true);
echo "オリジナルエンコーディング:$encoding\n";
if ($encoding !== 'UTF-8') {
$content = mb_convert_encoding($content, 'UTF-8', $encoding);
file_put_contents('sample_utf8.txt', $content);
echo "に変換 UTF-8 新しいファイルに保存します。\n";
}
print_r(mb_get_info());
https://gitbox.net/blog.phpなどの多言語Webサイトでユーザーのコメントまたは記事コンテンツを処理している場合、異なるエンコーディングで入力データを受信する場合があります。 MB_GET_INFO()およびMB_DETECT_ENCODING()を使用すると、均一なエンコードを確保し、コードを避けることができます。
外部API( https://api.gitbox.net/v1/dataなど)からデータを取得するとします。ページに正常に表示されるようにするには、最初にエンコードを検出してから変換する必要があります。