现在,我使用 strstr 从外部JSON文件中获取数据。我不确定它是否是我想要的最快速的方式,我无法测试,因为 json_decode 不能在我的代码中工作。< / p>
$before = '"THIS":"';
$after = '","date"';
$data = strstr(substr($url, strpos($url, $before) + strlen($before)), $after, true)
和json_decode:
$address = file_get_contents('http://json.link/?something=Hello');
$data = json_decode($address);
echo $data->data->THIS;
现在,当我用第二个代码替换第一个代码时,我得到:
注意:尝试获取非对象的属性
我的所有代码:
$text = "a lot of text";
$text_split = array(0 => '');
$number = 0;
$words = explode(' ', $text);
foreach($words as $word)
{
if(strlen($text_split[$number]) + strlen($word) + 1 > 500)
{
++$number;
$text_split[$number] = '';
}
$text_split[$number] .= $word.' ';
}
foreach($text_split as $texts)
{
$text_encode = rawurlencode($texts);
$address = file_get_contents('http://json.link/?something='.$text_encode);
$data = json_decode($address);
echo $data->data->THIS;
}
在这种情况下该怎么办?继续使用strstr或替换所有代码以使用json_decode(可能因为执行时间更快?)?如果第二个选项,我怎么能让json_decode在这里工作?谢谢!
...抱歉英语不好。
LE
如果我将$address = file_get_contents('http://json.link/?something='.$text_encode);
替换为$address = file_get_contents('http://json.link/?something=Hello');
,我会获得有效的结果#34; Hello&#34;文字但是10次。我猜是因为它在foreach中。
答案 0 :(得分:0)
json_decode
是使用JSON数据的建议方法。在这里,我认为您正在尝试访问JSON对象中的无效属性。
$data = json_decode($address);
echo $data->data->THIS;
我想你需要$data->date
而不是$data-data
?
答案 1 :(得分:0)
你必须像这样访问特定的键值
$json = '{"success":true,"msg":"success","data":{"THIS":"thing I need","date":"24.03.2014","https":false}}';
$d=json_decode($json,true);
echo $d['data']['THIS'];