【发布时间】:2017-06-12 20:17:56
【问题描述】:
我的脚本从网站上抓取数据。每当该网站不可用时,我的 error_log 文件中就会出现这样的错误:
[UTC 时间 2017 年 6 月 3 日 15:00:03] PHP 警告:文件(http://example.com): 无法打开流:HTTP 请求失败! HTTP/1.1 503 服务 不可用
有一个similar question here,但我只想禁止个人警告 - 因为我希望我的脚本中的任何其他警告仍然被记录。
那么是否可以禁止来自各个行的警告?
我已经尝试在 try/catch 块中包围给出警告的代码行 - 即,
try {
$lines = file("https://example.com"); // This line results in a warning in my error_log file if the web page is currently unavailable
}
catch(Exception $e) {
}
但我仍然收到警告。有没有人有其他想法?
【问题讨论】:
-
尝试使用这个:
error_reporting(E_ERROR | E_PARSE);这是因为警告不是例外=>你不能抓住它。我建议在生产中关闭警告.... -
谢谢,但这不会抑制所有其他警告(我想保留)吗?
-
是的,下一个讨厌的选项是:
@file("https://example.com");php.net/manual/en/language.operators.errorcontrol.php -
如果我将我的
$lines = file("https://example.com");代码行移动到一个单独的 php 文件,然后仅在该文件中设置error_reporting(...)会怎样。这行得通吗? -
我会使用@运算符,然后检查
$lines中是否有任何内容
标签: php