这是我的sample.txt
{ “消息”:[ { “地址”:“AIS”, “body”:“3989เพื่อป้องกันมิจฉาชีพอย่าบอกรหัสผู้ใดAISจะไม่ถามรหัสจากคุณ”, “date”:“1436164374077”, “读”:“0”, “msgtype”:“收件箱” }, { “地址”:“+ 66819129634”, “身体”:“7778”, “date”:“1436090922311”, “读”:“0”, “msgtype”:“收件箱” }, { “地址”:“+ 66819129634”, “身体”:“7778”, “date”:“1436090922132”, “读”:“1”, “msgtype”:“已发送” } ] }
<?php
$jsondata = file_get_contents("sample.txt");
$json = json_decode($jsondata, true);
?>
<ul>
<?php foreach($json['Messages'] as $message) : ?>
<li><?php echo $message['address']; ?></li>
<li><?php echo $message['body']; ?></li>
<li><?php echo $message['data']; ?></li>
<li><?php echo $message['read']; ?></li>
<li><?php echo $message['msgtype']; ?></li>
<?php endforeach; ?>
</ul>
我不知道为什么不工作
我认为这是关于我的foreach的问题
答案 0 :(得分:2)
将$ message [&#39;数据&#39;]修复为$ message [&#39; date&#39;]。我认为问题在于数组索引。
我假设它正在Stdclass对象中转换。
如果您无法看到错误,那么您可以使用。
ini_set('display_errors',1);
error_reporting(E_ERROR | E_WARNING | E_PARSE);
你可以试试这个。
<ul>
<?php foreach($json->Messages as $message) : ?>
<li><?php echo $message->address; ?></li>
<li><?php echo $message->body; ?></li>
<li><?php echo $message->data; ?></li>
<li><?php echo $message->read; ?></li>
<li><?php echo $message->msgtype; ?></li>
<?php endforeach; ?>
</ul>
答案 1 :(得分:0)
使用以下内容,以便提供结果
<?php foreach($json['Messages'] as $message) : ?>
<ul>
<li><?php echo $message['address']; ?></li>
<li><?php echo $message['body']; ?></li>
<li><?php echo $message['date']; ?></li>
<li><?php echo $message['read']; ?></li>
<li><?php echo $message['msgtype']; ?></li>
</ul>
<?php endforeach; ?>
,结果将是
AIS
3989เà,žà¸·à¹ˆà¸à¸›à¹‰à¸à¸‡à¸à¸±à¸™à¸¡à¸´à¸ˆà¸‰à¸²à¸Šà¸µà¸žà¸à¸¢à¹ˆà¸²à¸šà¸à¸à¸£à¸«à¸±à¸ªà¸œà¸¹à¹‰à¹ƒà¸” AIS จะไม่ถามรหัสจาà¸à¸„ุณ
1436164374077
0
inbox
+66819129634
7778
1436090922311
0
inbox
+66819129634
7778
1436090922132
1
sent
答案 2 :(得分:0)
这对我有用:
$jsondata = file_get_contents($path);
$json = json_decode($jsondata, true);
foreach($json['Messages'] as $message){
echo $message['address'];
echo $message['body'];
echo $message['date'];
echo $message['read'];
echo $message['msgtype'];
}
array-index存在问题:
echo $message['data'];
&#39;数据&#39;不是数组键,而是&#39; date&#39;
希望有所帮助
答案 3 :(得分:0)
我建议您使用curl,因为文件获取内容不安全下面是可以帮助您的代码
function get_content($URL){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
echo get_content('http://example.com');