繁体   English   中英

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

[英]Save the console text into a txt file? (PHP)

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

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

因为这样我可以很容易地将其保存在.txt文件中,并可以从Web上访问它:)-还是有另一种方式来获取控制台文本?

我大概可以说fwrite(...)理解echo ...; 但这会花费很多时间...

问候和谢谢!

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

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扩展名)

在Windows上可能有用的替代方法是将所有输出缓冲区保存为txt,首先检查控制台应用程序的php配置隐式_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
?>

如果使用控制台(即php yourscript.php)运行脚本,则可以在修改命令后轻松保存输出:

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

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

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

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

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

(完成后,只需创建文件:)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM