file_get_contents - "Use of undefined constant code - assumed 'code'"

file_get_contents - "Use of undefined constant code - assumed 'code'"

我正在尝试为我正在制作的网站添加一个基本的新抓取器,但我终究无法弄清楚是什么导致了这个错误。我抓取的文件是纯文本文件,完全可以访问。

我之前看到过它,OP 正在调用类似这样的内容: $var = $data[str] 而不是 $var = $data['src']

但我没有调用名称中带有 "code" 的任何内容。 我在 运行 我的代码时收到此错误:

HTTP request failed. Error 8 on line 123: Use of undefined constant code - assumed 'code' in file /usr/local/lib/php/head.php

下面是我的整个文件:

<?
    $e_news = file_get_contents("http://cinemattson.com/templates/flickfeed/news.txt");
    if (!$e_news === true) {
          $error = error_get_last();
          echo "HTTP request failed. Error " . $error['type'] . " on line " . $error['line'] . ": " . $error['message'] . " in file " . $error['file'] . "<br>";
    } else {
          echo "Everything went better than expected";
    }
    if ($e_news === true) { 
        $news = explode("|", $e_news);?>
        <h4>News &nbsp;&nbsp;&nbsp;&nbsp; - <? echo (!empty($news) ? $news[1] : "v0.0.1");?>&nbsp;&nbsp;<small><? echo (!empty($news) ? $news[0] : "5/22/2016");?></small></h4>
        <p><? echo (!empty($news) ? $news[2] : "Loading news failed, or there is currently no news.");?></p>
<? 
    } else {
        echo "<h4>News failed to load</h4>";
    }
?>

你们知道我在这里遗漏了什么或做错了什么吗?

正如@John Stirling 已经建议的那样,"the issue is elsewhere"。

更准确地说,报告的 Error 8 on line 123... etc 与之前在其他地方发生的错误有关。

您当前的代码导致此错误现在出现,因为您写道:

$e_news = file_get_contents("http://cinemattson.com/templates/flickfeed/news.txt");
if (!$e_news === true) {
      $error = error_get_last();

这样,会发生以下情况:

  • 每次 file_get_contents() 成功,$e_news 获取其内容。
  • $e_news === true为FALSE(即使此内容为空,因为你使用了===),而if (!$e_news === true)始终为TRUE。
  • 所以现在没有错误,你的error_get_last()得到了之前发生的最后一个错误的踪迹,别处...

事实上,为了让您的代码按预期工作,您应该这样做:

$e_news = file_get_contents("http://cinemattson.com/templates/flickfeed/news.txt");
if ($e_news === false) {
    $error = error_get_last();
    echo "HTTP request failed. Error " . $error['type'] . " on line " . $error['line'] . ": " . $error['message'] . " in file " . $error['file'] . "<br>";
    echo "<h4>News failed to load</h4>";
} else {
    echo "Everything went better than expected";
    $news = explode("|", $e_news);?>
    <h4>News &nbsp;&nbsp;&nbsp;&nbsp; - <? echo (!empty($news) ? $news[1] : "v0.0.1");?>&nbsp;&nbsp;<small><? echo (!empty($news) ? $news[0] : "5/22/2016");?></small></h4>
    <p><? echo (!empty($news) ? $news[2] : "Loading news failed, or there is currently no news.");?></p>
<? 
}