0

我目前正在尝试本地化我的网站,所有数据都将存储在 JSON 文件中。所以我想知道如何使用php获取数据

这是我的示例 JSON 文件/数据

{
  "en-us": {
    "registration": {
      "INVALID_USERNAME": "your username is taken",
      "INVALID_PASSWORD": "your password is not strong",
      "INVALID_EMAIL": "your email is invalid"
    },
    "login": {
      "INVALID_USERNAME": "please enter your username",
      "INVALID_PASSWORD": "please enter your password",
      "INVALID_LOGIN": "username or password is wrong"
    }
  }
}

现在我如何从注册部分获取值 INVALID_USERNAME?我已经尝试过了,但它不起作用。

$obj = json_decode(file_get_contents("en-us.json")); //file containing the json data above
echo $obj->{'INVALID_USERNAME'};

抱歉,我是 php 和 JSON 的新手,提前感谢您的帮助,Vidhu

4

3 回答 3

2

你可以试试这个

$obj = json_decode(file_get_contents("en-us.json")); //file containing the json data above

echo $obj->{'en-us'}->{'registration'}->{'INVALID_USERNAME'};
于 2012-12-02T03:16:36.597 回答
1

作为您的问题的解决方案,请尝试执行以下代码片段

<?php
 $json_content=file_get_contents("en-us.json");
 $json_array=json_decode($json_content,true);
 if(!empty($json_array))
 {
    echo $json_array['en-us']['registration']['INVALID_USERNAME'];
 }
?>
于 2012-12-02T03:40:40.603 回答
0

你这样做是正确的:

$obj = json_decode(file_get_contents("en-us.json"));

为了得到INVALID_USERNAME你需要做的事情:

$obj->en_us->registration->INVALID_USERNAME

这是因为INVALID_USERNAME是对象内的一个属性registration,它是对象下的一个属性en_us

于 2012-12-02T03:10:02.117 回答