0

我正在将包含数千个网页的庞大代码库从早期版本升级到 PHP 5.3。我们已经放弃使用短标签(<%、<\?= 等...),并在 php.ini 中禁用它们,并尽合理努力在代码中查找并替换它们。

但是,当有人创建带有或短标签的东西或某些遗留代码仍然遗漏了一个时,Apache 会返回一个状态为 200 的空白文档。问题是,PHP 没有抛出错误(显然因为它没有解析它们)并且 Apache 似乎也没有记录它是一个错误。这就产生了一个问题,无法在没有目视检查所有页面的情况下检测这些内容(一个简单的爬虫对 url 返回的 200 感到满意)。

有没有人知道有什么方法可以让 Apache 或 PHP 在抓取网站时遇到短标签时抛出错误?

4

1 回答 1

1

无法真正找到让 PHP 或 Apache 发出某种与带有短标签的文档相关的警告的方法,但您可以设置一个 cron 作业来搜索服务器的 web 文件夹下的所有文件,例如发送一封带有结果,因此至少指出了带有短标签的文件:

简单示例: cron 作业

<?php

// run grep command for '<?' that don't have an immediately p
$found = shell_exec('grep -rn "<?[^p]" *');

if ($found!='') {
  // email or any other action...
}

?>
于 2012-05-12T18:18:38.800 回答