php - 如何显示 PHP 内部 web 服务器的介绍文本
问题描述
php -S localhost:8000 -t myPath myFile.php
我实际上通过 PHP 文件使用命令启动了一个 PHP Web 内部 Web 服务器。
我想看到的:
PHP 7.3.11-1+ubuntu18.04.1+deb.sury.org+1 开发服务器于 2019 年 11 月 18 日星期一 12:04:52 开始
文档根目录是 /var/www/html/perso/otra/web
按 Ctrl-C 退出。
当我在终端中键入此命令时,它会显示这些信息,但当它来自我的脚本时则不会。
我什么也没看见。当我通过 Ctrl+C 使用该函数停止服务器时,我成功做的就是将此输出放入一个文件中。proc_open
我想显示这些信息和...:
- 立即不在程序结束时...
- 不在文件中,而是直接到终端屏幕
实现这一目标的最简单方法是什么?
我尝试了不同的功能,,,,但exec
我不掌握最后一个。这是我尝试过的示例:system
passthru
popen
proc_open
proc_open
<?php
define('STD_IN', 0);
define('STD_OUT', 1);
define('STD_ERR', 2);
$process = proc_open(
'php -S localhost:8000 -t ' . BASE_PATH . 'web/ ' . CORE_PATH . 'console/localServerInit.php',
[
STD_IN => ['pipe', 'r'],
STD_OUT => ['pipe', 'w'],
STD_ERR => ['file', BASE_PATH . 'logs/dev/localServerError.txt', 'a']
],
$pipes,
__DIR__,
$_ENV
);
if (is_resource($process) === true)
{
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
echo stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
$return_value = proc_close($process);
echo "The commands returned $return_value", PHP_EOL;
}
echo
不打印任何东西。如果我使用文件STD_OUT
代替,我将在键入 Ctrl+C 时看到内容。
解决方案
推荐阅读
- websocket - Binance WebSocket 订单簿 - 深度每次都在变化
- javascript - 用户单击按钮时启动计时器,React Native
- python - 当我尝试运行后端代码时出现语法错误
- c# - TimeSpan 函数使用 C#
- python - 当我不使用 Cogs 时,我在 Discord.py 中使用什么?
- angular - 如何在开始滚动和透明后将角度材质工具栏背景颜色更改为白色?
- svn - 损坏的 SVN 存储库,更改校验和
- azure - 部署时 Azure 队列触发器未触发
- jquery - 如何将模式窗口中的详细信息提交到 Django 中的数据库?
- apache - Websocket 过早关闭。可疑代理配置