隐藏常见的 PHP 警告和通知


Hide common PHP warning and Notices

剧情:首先我和GodDaddy有一个网站,他们很酷的CPanel和更酷的停机时间,我转向了Digital Ocean VPS。

问题:但是当我将文件传输到VPS时,我遇到了一些常见/不常见的PHP错误。我在使用神父时没有看到任何错误。其中一些是。

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 

我现在正在使用PHP 5.4(在nginx上,LEMP安装(。任何隐藏这些错误的方法,因为即使出现这些错误,我的网站也能完美运行。

与其抑制通知和错误消息,我会考虑解决问题。现在可能还有更多的工作要做,但我认为为了最终拥有一个完整运行和正常运行的程序,值得付出努力 - 如果数字海洋更新库,您的代码将中断。

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7

此通知告诉您有一个变量未设置,在哪个文件中以及在哪一行中。所以你应该去这个文件,看看第7行发生了什么,然后尝试修复它。看起来根本不需要$q,因此如果其他地方需要该变量,请尝试注释掉该行或更深入地查看您的文件。

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 
值为 1

的CURLOPT_SSL_VERIFYHOST已被弃用,并将从 libcurl 7.28.1 开始删除。建议改用值 2。

考虑查看您正在运行的 curl 文件,并将行从

CURLOPT_SSL_VERIFYHOST => true or  CURLOPT_SSL_VERIFYHOST => 1

自:

CURLOPT_SSL_VERIFYHOST => 2,

看起来 GoDaddy 使用了不同库的过时(旧(版本。

curlopt 设置现在可能是一个警告,但一旦 Digital Ocean 更新他们的库或您更新它们,就会破坏您的程序。

您可以根据文档更改 php.ini 文件并避免以下错误:

error_reporting = E_ALL & ~E_NOTICE

这将删除通知和编码标准警告。

在脚本顶部添加以下内容

 error_reporting(0);

在你的 php.ini 文件中,有两个变量供你考虑。 第一个是捕获的错误级别,第二个是是否在屏幕上显示它们。

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off

调整这些将给你所需的输出。