ホームページ >バックエンド開発 >PHPチュートリアル >PHP配列をJSONに変換して中国語コードを表示します。説明してください

PHP配列をJSONに変換して中国語コードを表示します。説明してください

WBOY
WBOYオリジナル
2016-06-13 12:47:27917ブラウズ

PHP 配列を JSON に変換して中国語コードを表示します。説明してください

この投稿は、wang23412 によって最終編集されました (2013-06-09 17:05:27) PHPを使って配列をjson形式に変換してjqueryに渡すと、中国語がおかしなエンコードになってしまうことが分かりました。そこでインターネットで解決策を探したところ、多くの人が次の 2 つの関数を使用して解決していることがわかりました。
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)<br />
{<br />
    static $recursive_counter = 0;<br />
    if (++$recursive_counter > 1000) {<br />
        die('possible deep recursion attack');<br />
    }<br />
    foreach ($array as $key => $value) {<br />
        if (is_array($value)) {<br />
            arrayRecursive($array[$key], $function, $apply_to_keys_also);<br />
        } else {<br />
            $array[$key] = $function($value);<br />
        }<br />
        if ($apply_to_keys_also && is_string($key)) {<br />
            $new_key = $function($key);<br />
            if ($new_key != $key) {<br />
                $array[$new_key] = $array[$key];<br />
                unset($array[$key]);<br />
            }<br />
        }<br />
    }<br />
    $recursive_counter--;<br />
}

function JSON($array) {<br />
 arrayRecursive($array, 'urlencode', true);<br />
 $json = json_encode($array);<br />
 return urldecode($json);<br />
}

テストしてみると実際に問題は解決したので、コードを注意深く調べたところ、次のコードの意味がわからないことがわかりました:
$array[$key] = $function($value);

この文の前後に $array[$key] を出力して値を確認したところ、この文が中国語をコード列に変えていることが分かりました。
$function($value) が何を意味するのか説明していただけますか?
PHP JSON 中国語 エンコーディング
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。