我有一个小的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
请求一个网页,PHP将把echo
单词回显到浏览器,PHP将把句子this is a test
回响。到运行内置Web服务器的控制台。
这几乎发生了 -期望每个请求将this is a test
打印到标准输出两次。有人知道会发生什么吗?
答案 0 :(得分:1)
启动内置Web服务器的方式不正确。您在最后添加了测试test.php
文件,这意味着test.php
文件应充当路由文件。
只需使用以下命令启动内置Web服务器:
php -S 127.0.0.1:8081
该命令在当前工作目录内启动Web服务器,并将其设置为Webroot。使用以下网址打开浏览器:http://127.0.0.1:8081/test.php
有关内置网络服务器的更多详细信息,请参见here。
答案 1 :(得分:0)
我能够通过让程序记录以下内容来解决此问题
file_put_contents('php://stdout', $_SERVER['REQUEST_URI'] . PHP_EOL, FILE_APPEND);
并在控制台输出中看到以下内容
/
/favicon.ico
第二个日志来自网络浏览器,该日志自动尝试获取favicon.ico
文件。