【问题标题】:PHP save console outputPHP保存控制台输出
【发布时间】:2014-02-23 19:40:10
【问题描述】:

我试图将控制台中的所有输出行保存到文件中,但代码无法正常工作,因为它当前所做的是

从控制台获取最后一行并将其写入文件,并且文件不会更新,直到我关闭控制台正在运行的进程-

    $start = exec("cd /ot/forgottenserver && ./tfs", $output);

    $file = fopen("/var/www/public/stream.html", "a+");

    while ($start) 
    {
    fwrite($file, $start."\n");
    }

    fclose($file);

每次从控制台获取新行时我都需要编写,并且在进程执行时更新文件。

【问题讨论】:

    标签: php exec output


    【解决方案1】:

    使用popen 代替exec。与exec(执行命令并仅在进程完成后返回)相反,popen 返回指向该进程的指针,您可以使用它来读取输出。

    $h = popen('cd /ot/forgottenserver && ./tfs', 'r');
    
    if ($h) {
        while (!feof($h)) {
            $buf = fread($h, 1024);
    
            $fileHandle = fopen("/var/www/public/stream.html", "a+");
    
            if ($fileHandle) {
                fwrite($fileHandle, $buf);
                fclose($fileHandle);
            }
        }
    
        pclose($h);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2017-09-30
      相关资源
      最近更新 更多