将控制台文本保存到txt文件中? (PHP)

时间:2017-02-22 15:45:47

标签: php shell console

实际上我写完了我的程序。因为它只是一个插件而且它在外部服务器上运行,所以我仍然想看看我是否在控制台中出现了一些错误或其他错误。

我用echo ...;编写了每个控制台输入。我现在的问题是,是否可以获取控制台的文本?

因为那时我可以轻松地在.txt文件中保护它并且可以从网络上访问它:) - 或者是否有其他方法来获取控制台文本?

我可能只会说fwrite(...) echo ...;的{​​{1}}。但这会花费很多时间......

问候,谢谢!

4 个答案:

答案 0 :(得分:1)

对于控制台(命令行界面),您可以重定向脚本的输出:

php yourscript.php > path-of-your-file.txt

如果您无法访问命令行界面或编辑cronjob行,则可以在脚本开头复制starndar输出:

$fdout = fopen('path-to-your-script.txt', 'wb');
eio_dup2($fdout, STDOUT);
eio_event_loop();
fclose($fdout);

(eio是一个pecl扩展名)

答案 1 :(得分:1)

在Windows上可能有用的替代方法是将所有输出缓冲区保存到txt,首先检查你的php配置是否为控制台应用程序implicit_flush必须关闭

<?php  
ob_start(); //before any echo
/** YOUR CODE HERE **/
$output = ob_get_contents(); //this variable has all the echoes
file_put_contents('c:\whatever.txt',$output);
ob_flush(); //shows the echoes on console
?>

答案 2 :(得分:0)

如果您使用控制台(即php yourscript.php)运行脚本,则可以轻松地将输出修改为以下命令:

php yourscript.php > path/to/log.txt

上述命令将捕获脚本的所有输出并将其保存到log.txt。根据需要更改脚本/日志的路径。

答案 3 :(得分:0)

如果你的目标是创建一个要访问的文本文件,那么你应该直接创建一个文本文件。

(执行此操作而不是回显到控制台)

$output  = $consoleData . "\n";
$output .= $moreConsoleData . "\n"; 

(一旦你完成了,只需创建文件:)

$file = fopen('output.txt', 'a');
    fwrite($file, $output);
    fclose($file);

当然,这很稀疏 - 你还应该检查文件是否存在,必要时创建它等等。