HTML错误未显示

问题描述 投票:0回答:1

我试图测试PHP(7.2)HTML错误报告。

我从http://php.net/download-docs.php下载了“Many HTML files”存档并将其解压缩到:

/home/user/public_html/php/manual/php-chunked-xhtml/

在apache的php.ini中我设置了:

error_reporting = E_ALL
display_errors = On

html_errors = On
docref_root = "/~user/php/manual/php-chunked-xhtml/"
docref_ext = .html

并重新启动了apache服务。

作为测试我做:

printf();

产量:

警告:printf()期望在第10行的/home/user/public_html/test/err.php中给出至少1个参数0

...但它没有链接到手册页。纯文本。

我在这做错了什么?如果没有printf()的链接?


编辑:

phpinfo()说设置与ini(上图)相同。我也尝试将手册移到/var/www/html/phpmanual,但结果相同。我还补充道

ini_set("html_errors", true);

到测试文件,但结果没有变化。

手册是可浏览的。


至于我的期望。每个手册有:

html_errors布尔值

如果启用,错误消息将包含HTML标记。 HTML错误的格式产生可点击的消息,这些消息将用户引导到描述导致错误的错误或功能的页面。这些引用受docref_root和docref_ext的影响。如果禁用,错误消息将仅为纯文本。

以为我会得到一个链接到printf()的例子。

php
1个回答
1
投票

确定最终找到了 - HTML错误消息不包含所有可能错误的链接。例如:

strcmp();

生成警告:

警告:strcmp()需要2个参数,给定0

但是没有指向strcmp()函数页面的链接,即使文档包中存在一个。 (function.strcmp.html)

但是,这段代码:

preg_match('/', null);

还会产生警告:

警告:preg_match()[function.preg-match.html]:找不到结尾分隔符'/'

但这个确实包括链接。不确定区别是什么,因为它们都是E_WARNING级别的消息,并且两者都有doc页面。

© www.soinside.com 2019 - 2024. All rights reserved.