实际上我写完了我的程序。因为它只是一个插件而且它在外部服务器上运行,所以我仍然想看看我是否在控制台中出现了一些错误或其他错误。
我用echo ...;
编写了每个控制台输入。我现在的问题是,是否可以获取控制台的文本?
因为那时我可以轻松地在.txt文件中保护它并且可以从网络上访问它:) - 或者是否有其他方法来获取控制台文本?
我可能只会说fwrite(...)
echo ...;
的{{1}}。但这会花费很多时间......
问候,谢谢!
答案 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);
当然,这很稀疏 - 你还应该检查文件是否存在,必要时创建它等等。