我试图为我正在制作的网站添加一个基本的新抓取工具,并且无法弄清楚导致此错误的因素。我抓取的文件是纯文本文件,完全可以访问。
我之前看过它,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 - <? echo (!empty($news) ? $news[1] : "v0.0.1");?> <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>";
}
?>
你们知道我在这里失踪或做错了吗?
答案 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 - <? echo (!empty($news) ? $news[1] : "v0.0.1");?> <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>
<?
}