当前位置: 首页 > 知识库问答 >
问题:

在PHP内置web服务器中打印内容

冀望
2023-03-14

在python内置的web服务器中,当使用print函数时,它会在终端中打印结果...

例如:

Django version 1.3.4, using settings 'parsicore.settings'
Development server is running at http://0.0.0.0:8000/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CONTROL-C.


127.0.0.1 - - [16/Jan/2013 02:02:08] "GET / HTTP/1.1" 200 -
hello ... print 1 2 3 

如何在PHP内置Web服务器中打印这样的东西?

例如,我希望在终端中打印$\u POST。我使用php-s127.0。0.1:3000用于运行PHP内置web服务器。

共有3个答案

凌黎明
2023-03-14

PHP内置服务器将输出写入到php://stdout流,这意味着您可以向其输出任何内容,但这只应用于调试。

下面是一个快速示例,说明如何实现写入服务器控制台的结果:

<?php declare(strict_types=1);


/**
 * This is for development purpose ONLY !
 */
final class ServerLogger {

    /**
     * send a log message to the STDOUT stream.
     *
     * @param array<int, mixed> $args
     *
     * @return void
     */
    public static function log(...$args): void {
        foreach ($args as $arg) {
            if (is_object($arg) || is_array($arg) || is_resource($arg)) {
                $output = print_r($arg, true);
            } else {
                $output = (string) $arg;
            }

            fwrite(STDOUT, $output . "\n");
         }
    }
}

// usage example : 
ServerLogger::log('Hello, world!');
// outputting an array : 
ServerLogger::log($_SERVER);
姚培
2023-03-14

PHP5.4内置的开发web服务器无法按照您想要的方式工作。也就是说,它不是一个PHP进程,您不能让它为您运行代码。

它旨在为指定目录中的PHP应用程序和内容提供服务。服务器进程的输出是访问日志。您可以使用error_log函数写入日志,值为4作为message_type。所以,理论上,你可以这样做

ob_start();
var_dump($_POST);
error_log(ob_get_clean(), 4);

听起来好像您正在尝试执行一些调试。您应该使用真正的调试工具,而不是拼凑一些东西。

於炯
2023-03-14

只需将数据管道error_log():

error_log(print_r($_REQUEST, true));
 类似资料:
  • PHP 5.4 之后, 你可以不用安装和配置功能齐全的 Web 服务器,就可以开始学习 PHP。 要启动内置的 Web 服务器,需要从你的命令行终端进入项目的 Web 根目录,执行下面的命令: > php -S localhost:8000

  • #include <iostream> #include <vector> using namespace std; int main () { vector<int> vec(10); // 10 zero-initialized elements for (int i = 0; i < vec.size(); i++) vec[i] = i; cout << "ve

  • 启动内置服务器 V5.1.5+版本开始,增加了启动内置服务器的指令,方便测试。 命令行切换到应用根目录后,输入: >php think run 如果启动成功,会输出下面信息,并显示web目录位置。 ThinkPHP Development server is started On <http://127.0.0.1:8000/> You can exit with `CTRL-C` Documen

  • 使用 PHP-FPM 有多种方式来配置一个 web 服务器以提供 PHP 服务。传统(并且糟糕的)的方式是使用 Apache 的 mod_php。Mod_php将PHP 绑定到 Apache 自身,但是 Apache 对于该模块功能的管理工作非常糟糕。一旦遇到较大的流量, 就会遭受严重的内存问题。 后来两个新的可选项很快流行起来:mod_fastcgi 和 mod_fcgid。 两者均保持一定数量

  • 问题内容: 我是Web服务器管理的新手。我已经多次阅读flask内置Web服务器不是为“生产”而设计的,而只能用于测试和调试… 但是,如果我的应用程序仅接触到偶尔将数据发送到服务器的一千个用户,该怎么办? 如果可以,我什么时候需要打扰更复杂的Web服务器的配置?(我正在寻找近似指标)。 简而言之,我很想找到内置的Web服务器可以做什么(具有大约阈值)和它不能做什么。 非常感谢 ! 问题答案: 这个

  • 主要内容:1. 根目录和索引文件,2. 尝试几个选项,3. 优化NGINX服务内容的速度本节介绍如何使用NGINX来提供静态内容服务,定义搜索路径以查找请求的文件的方法,以及如何设置索引文件。 在这个部分,我们主要涉及以下几个方面的内容: 根目录和索引文件 尝试几个选项 优化NGINX服务内容的速度 1. 根目录和索引文件 root指令指定将用于搜索文件的根目录。 要获取请求文件的路径,NGINX将请求URI附加到指令指定的路径。 该指令可以放置在,或上下文中的任何级别上。 在下面的