[英]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.