我正在尝试测试PHP(7.2)HTML错误报告。
我已经从http://php.net/download-docs.php下载了“许多HTML文件” 存档,并将其解压缩到:
/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()至少需要1个参数,其中0表示 /home/user/public_html/test/err.php,第10行
…,但未链接到手册页。仅限文字。
我在这里做错了什么?应该没有指向printf()
的链接吗?
编辑:
phpinfo()
说设置与ini(如上)相同。我也尝试将手册移至/var/www/html/phpmanual
,但结果相同。我还添加了
ini_set("html_errors", true);
到测试文件,但结果没有变化。
该手册是可浏览的。
关于我的期望。每本手册都有:
html_errors布尔值
如果启用,错误消息将包含HTML标记。 HTML错误的格式会产生可点击的消息,将用户定向到页面 描述错误或导致错误的功能。这些 引用受docref_root和docref_ext影响。 如果禁用,则错误消息将仅是纯文本。
以为我会按照示例获得指向printf()
的链接。
答案 0 :(得分:1)
确定终于找到了它-HTML错误消息不包含所有可能错误的链接。例如:
strcmp();
生成警告:
警告:strcmp()恰好需要2个参数,给定0个参数
但是,即使文档包中存在一个链接,也没有指向strcmp()函数页面的链接。 (function.strcmp.html)
但是,此代码:
preg_match('/', null);
还会发出警告:
警告:preg_match()[function.preg-match.html]:找不到结尾定界符'/'
但是这个确实包含链接。不知道有什么区别,因为它们都是E_WARNING级别的消息,并且都有文档页面。