我有一个小的PHP程序
#File: test.php
<?php
echo "echo";
file_put_contents('php://stdout', 'this is a test' . PHP_EOL, FILE_APPEND);
我正在使用PHP内置的Web服务器运行该程序(PHP 7.1.21,通过自制软件安装,如果重要的话)。
php -S 127.0.0.1:8081 test.php
我的期望是,通过http://127.0.0.1:8081
请求web页面,PHP将echo
这个词回显给浏览器,PHP将把this is a test
这个句子回显到运行内置Web服务器的控制台。
这几乎发生了 - 期望this is a test
每次请求打印到stdout两次。有谁知道可能会发生什么?
启动内置Web服务器的方式不正确。您在末尾添加了测试test.php
文件,这意味着test.php
文件应该充当路由文件。
只需使用以下命令启动内置Web服务器:
php -S 127.0.0.1:8081
该命令启动当前工作目录中的Web服务器并将其设置为webroot。使用url:http://127.0.0.1:8081/test.php
打开浏览器
有关内置网络服务器的更多细节可以在here找到。
我能够通过让我的程序记录以下内容来解决这个问题
file_put_contents('php://stdout', $_SERVER['REQUEST_URI'] . PHP_EOL, FILE_APPEND);
并在我的控制台输出中看到以下内容
/
/favicon.ico
第二个日志来自网络浏览器,自动尝试获取favicon.ico
文件。