Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP注意:尝试获取非对象错误的属性_Php_Syntax Error_Notice - Fatal编程技术网

PHP注意:尝试获取非对象错误的属性

PHP注意:尝试获取非对象错误的属性,php,syntax-error,notice,Php,Syntax Error,Notice,我试图从一个网页上获取数据,该网页大部分时间只显示值0,但有时会变成这样 {"deals":[{"symbol":"SymbolTest","type":"TestCall","amount":"0.00","duration":"30","durationUnit":"m","date":"2017.07.12 7:55:10 PM"}]} 但此处仅显示此文本,而不是0,持续约1-2秒 因此,我创建了一个脚本,如果值从0更改为其他值,它会不断检查网页。如果显示另一条文本,我将通过IFTTT在

我试图从一个网页上获取数据,该网页大部分时间只显示值0,但有时会变成这样

{"deals":[{"symbol":"SymbolTest","type":"TestCall","amount":"0.00","duration":"30","durationUnit":"m","date":"2017.07.12 7:55:10 PM"}]}
但此处仅显示此文本,而不是0,持续约1-2秒

因此,我创建了一个脚本,如果值从0更改为其他值,它会不断检查网页。如果显示另一条文本,我将通过IFTTT在手机上收到通知,其中包含我需要的重要数据。(理论上)这就是我被困的地方。我想我一切都对了,但我就是找不到我的错误

这是我当前的代码:
function sendNotification($url, $fields) {
  //url-ify the data for the POST
  $fields_string = '';
  foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; 
}
  rtrim($fields_string, '&');

  //open connection
  $ch = curl_init();

  //set the url, number of POST vars, POST data
  curl_setopt($ch,CURLOPT_URL, $url);
  curl_setopt($ch,CURLOPT_POST, count($fields));
  curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

  //execute post
  $result = curl_exec($ch);

  //close connection
  curl_close($ch);
}

$url = 'http://example.com:54321/?request=deals&token=example';
$notifyUrl = 'https://maker.ifttt.com/trigger/dealreceived/with/key/examplekey';

while (true) {
  $content = file_get_contents($url);

  if ($content != '0') {
    echo 'No 0 found -IFTTT request sent';

    $data = json_decode($content);
    $notificationData = [];

    foreach ($data->deals as $deal) {
      $notificationData = [
        'value1' => $deal->symbol,
        'value2' => $deal->type,
        'value3' => $deal->duration
      ];

      sendNotification($notifyUrl, $notificationData);
    }

  }
}
我得到的错误如下:

PHP Notice:  Trying to get property of non-object in /home/example.cloudwaysapps.com/example/public_html/watch.php on line 36                       

PHP Warning:  Invalid argument supplied for foreach() in /home/example.cloudwaysapps.com/example/public_html/watch.php on line 36
这是第36行:

foreach ($data->deals as $deal) {

任何建议都将不胜感激。不幸的是,我被卡住了。

这里有些地方你可能会失败:
file\u get\u content
-您应该检查它是否返回false-可能您根本无法获取内容。
json_decode
-如果语法错误,则可能返回false,你应该检查它,如果它是假的,你可以检查
json_last_error
以查看错误是什么。

var_dump$data-它不是一个对象。。是的,尝试var_转储整个$data,看看你得到了什么结果如果我理解正确,我可以像这样做foreach($data[0]->deals as&deal){谢谢你现在就试试看!