提问人:fracz 提问时间:12/11/2020 更新时间:12/11/2020 访问量:374
PHP 内置 Web 服务器和路由器脚本中的语法错误
PHP Built-in web server and syntax error in a router script
问:
我正在使用 PHP 内置 Web 服务器进行测试。例如,使用简单的路由器脚本:
<?php
echo 'Hello world';
使用 .工程。php -S localhost:8000 router.php
现在,我们不要说我在路由器脚本中犯了语法错误(例如缺少分号):
<?php
echo 'Hello world'
并使用相同的命令启动开发服务器。
在浏览器中访问给我 404 错误:在此服务器上找不到请求的资源/。它完全没有给我任何关于问题或语法错误放置的线索。我打开Web服务器的终端也没有显示任何错误(除了404)。localhost:8000
我将错误报告设置为 。我已将 .E_ALL
php.ini
display_errors
On
在这种情况下,在哪里查找错误消息?如何强制PHP将此类错误呈现给浏览器而不是404错误页面?
答:
2赞
Susilo
12/11/2020
#1
经过反复试验,我得出的结论是,不会在任何文件中记录错误,而是直接打印到控制台并发送到浏览器,但前提是 php 文件不包含任何词法错误。我找不到任何关于此的文档,所以请随时纠正我。php-builtin-server
可以做一个简单的解决方法,在运行之前检查php文件。为了简化操作,请为其创建一个批处理文件。php -l
php-builtin-server
窗户
使用以下内容创建(或任何有效名称):php-srv.bat
php -l %1 | find /i "No syntax errors"
if not errorlevel 1 (
php -S localhost:8000 %1
)
执行它php-srv route.php
Linux的
使用以下内容创建(或任何有效名称):php-srv.sh
if php -l $1 | grep 'No syntax errors detected in'; then
php -S localhost:8000 $1
fi
使其可执行,然后使用chmod
./php-srv.sh route.php
希望对您有所帮助
评论
phpinfo()
E_ALL
display_errors