我已经检查了我的php ini文件( php.ini
)以及 display_errors
已设置,并且错误报告也已设置 E_ALL
. 我已经重新启动了apache Web服务器。
我甚至把这些行放在我的脚本的顶部,它甚至不捕捉简单的解析错误。例如,我用 "$"
我不会结束陈述 ";"
. 但是我所有的脚本都会在这些错误上显示一个空白页,但是我想在浏览器输出中看到错误。
error_reporting(E_ALL);
ini_set('display_errors', 1);
还有什么事要做?
28条答案
按热度按时间8aqjt8rx1#
这对我总是有用的:
但是,这不会使php显示解析错误-显示这些错误的唯一方法是使用以下行修改php.ini:
(如果您无法访问
php.ini
,然后把这条线放进去.htaccess
可能也有用):bqujaahr2#
在运行时启用错误输出时,您无法捕获解析错误,因为它在实际执行任何操作之前解析文件(并且由于在此过程中遇到错误,因此不会执行任何操作)。您需要更改实际的服务器配置,以便启用“显示错误”,并使用适当的错误报告级别。如果您没有访问php.ini的权限,则可以使用.htaccess或类似的工具,具体取决于服务器。
此问题可能提供其他信息。
ngynwnxp3#
在php.ini中:
然后重新启动web服务器。
ki1q1bka4#
要显示所有错误,您需要:
1.在从浏览器调用的php脚本中包含这些行(通常是
index.php
):2.(a)确保此脚本没有语法错误
-或者-
2.(b)套
display_errors = On
在你的php.ini
否则,它连这两条线都跑不了!您可以通过运行(在命令行)检查脚本中的语法错误:
如果包含来自另一个php脚本的脚本,那么它将在包含的脚本中显示语法错误。例如:
index.php
```error_reporting(E_ALL);
ini_set('display_errors', '1');
// Any syntax errors here will result in a blank screen in the browser
include 'my_script.php';
`my_script.php`
adjfkj // This syntax error will be displayed in the browser
wbrvyc0a5#
一些web宿主提供程序允许您在
.htaccess
文件。可以添加以下行:
我和你有同样的问题,这个解决方案解决了。
swvgeqrz6#
您可能会发现“错误报告”或“显示错误”的所有设置在php中似乎都不起作用 7.这是因为错误处理发生了变化。请尝试以下操作:
或者,一次性捕获异常和错误(这与php不向后兼容) 5):
nkcskrwz7#
把这个放在你的页首。
o0lyfsai8#
在unix cli中,只将错误重定向到文件是非常实际的:
从你的剧本中,要么用
var_dump()
或与往常一样的等效文件(stdout和stderr都将接收输出),但只在日志文件中写入:然后从另一个shell,进行实时更改:
或者只是
de90aj5v9#
您可以通过简单的方式在显示器中显示php错误。首先,把下面的代码放到php.ini文件中。
(如果您没有访问php.ini的权限,那么将这一行放入.htaccess也可以):
或者也可以在index.php文件中使用以下代码
bihw5rsg10#
如果在命令行上,您可以运行
php
与-ddisplay_errors=1
替代中的设置php.ini
:dohp0rv511#
报告除e\ U通知外的所有错误
显示所有php错误
关闭所有错误报告
kyxcudwk12#
您可能需要使用以下代码:
i2loujxw13#
如果安装了xdebug,则可以通过以下设置覆盖每个设置:
强制显示错误
type:int,默认值:0,在xdebug>=2.3中引入,如果此设置设置为1,则无论php的display\u errors设置如何,都将始终显示错误。
强制错误报告
类型:int,默认值:0,在xdebug>=2.3中引入此设置是位掩码,类似于错误报告。此位掩码将与错误表示的位掩码进行逻辑或运算,并向dermine报告应显示的错误。此设置只能在php.ini中进行,并允许您强制显示某些错误,无论应用程序如何使用ini\u set()。
uqxowvwt14#
您可以通过更改php.ini文件并添加以下内容来实现
或者你也可以使用下面的代码,因为这总是适合我
3htmauhk15#
写下: