繁体   English   中英

每个PHP的JSON_DECODE不起作用

[英]JSON_DECODE for each php not working

这是我的sample.txt

{“消息”:[{“地址”:“ AIS”,“正文”:“ 3989เพื่อป้องกันมิจฉาชีพอย่าบอกรหัสผู้ใดAISจะไม่ถามรหัสจากคุณ”,“ date”:“ 1436164374077”,“ read”: “ 0”,“ msgtype”:“收件箱”},{“地址”:“ +66819129634”,“正文”:“ 7778”,“ date”:“ 1436090922311”,“ read”:“ 0”,“ msgtype” :“”收件箱“},{”地址“:” +66819129634“,”正文“:” 7778“,” date“:” 1436090922132“,” read“:” 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的问题

将$ message ['data']修复为$ message ['date']。 我认为问题出在数组索引上。

而且我认为它正在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>

使用以下内容,以便给出结果

<?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

这对我有用:

$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'];
        }

数组索引存在问题:

echo $message['data'];

“数据”不是数组键,而是“日期”

希望能帮助到你

我建议您使用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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM