私は私のウェブサイトで使用するためにJSONデータをフェッチしていると私はそれをエコーする必要があり、このような:PHP - 配列全体へのがhtml_entity_decode
<?php
$json = file_get_contents("/lang/translator.php"); // uses preg_replace to remove whitespace/newlines from my actual json file and then echo's it
$i18n = json_decode($json, true);
if (htmlentities($_GET['lang'], ENT_QUOTES) == 'en')
{
$arr = 'i18n_en';
}
else if (htmlentities($_GET['lang'], ENT_QUOTES) == 'ru')
{
$arr = 'i18n_ru';
}
?>
そして、私はこのようにそれを使用します。
<?php echo $i18n[$arr]['string_key']; ?>
string_key
はJSON配列に応じて、自分のサイトの英語またはロシア語の翻訳をその価値に保持します。
問題:
хорошо --> хорошо
ひとつひとつのキリル文字をHTMLエンティティに変換されます:
私はキリル文字(ロシア語)この問題が発生したを保持している私のJSONファイルをアップロード。だから私はそれに対処するためにhtml_entity_decode()
を使用することができたが、これを行うには時間がかかることを想像してすべて<?php echo $i18n[$arr]['string_key']; ?>
私は自分のコードで呼び出してください。その周りに何か方法はありませんか? $i18n
をhtml_entity_decode()
に渡そうとしましたが、array of strings
ではなく、string
が必要です。何か案は?
私のJSONの例:
{
"i18n_en":
{
"key0": "value0",
"key1": "value1"
},
"i18n_ru":
{
"key0": "value0",
"key1": "value1"
}
}
なぜ '$ _GET'値で' htmlentities'を呼び出すのですか? 'htmlentities'は、ページに値を表示するときにのみ使用し、HTMLとしてレンダリングさせたくない場合に使用してください。 – Barmar
私はこれをハッカーの攻撃から守るためには良い習慣だと思っています。 –