file_get_contents - "使用未定义的常量代码 - 假设'代码'"

时间:2016-05-25 20:07:54

标签: php httprequest file-get-contents

我试图为我正在制作的网站添加一个基本的新抓取工具,并且无法弄清楚导致此错误的因素。我抓取的文件是纯文本文件,完全可以访问。

我之前看过它,OP正在调用类似的内容: $var = $data[str]代替$var = $data['src']

但我并没有用"代码"在名字里。 我在运行代码时收到此错误:

  

HTTP请求失败。第123行的错误8:使用未定义的常量   代码 - 假设'代码'在文件/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>";
    }
?>

你们知道我在这里失踪或做错了吗?

1 个答案:

答案 0 :(得分:2)

正如@John Stirling已经提出的那样,&#34;问题出在其他地方&#34;。

更准确地说,报告的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>
<? 
}