2

我正在为梵文自然语言编程编写代码。早些时候机器处于测试模式,所以我通过 GET 方法发送变量,从 HTML 前端到我的 PHP 代码进行测试和编辑。

现在代码或多或少变得稳定了。

我现在想要的是将输出写入预定义的 txt / HTML 文件,而不是将其回显到浏览器屏幕。

我的典型代码行如下所示:

if ( $a === 1 ) // if a condition is satisfied.
{ 
    //Do something here
    echo "<p class = sa >X rule has applied. </p>\n";
}

有什么方法可以让我操作回显函数并将其用作 - fputs($outfile, $b); 其中 $b 是正在回显的字符串。在本案中:

fputs($outfile,"<p class = sa >X rule has applied. </p>\n");

该代码仍处于开发阶段。所以,我认为用一些正则表达式替换这个回声不是一个好方法。否则,对于单个更改 - 我将不得不在两个版本的代码中进行更改 - fputs 和 echo one。

是什么让我认为这是 - 在 Python 中我可以重新定义 python 函数,例如我可以定义一个自定义函数 max(a,b),即使它是一个内置函数。我不知道有什么方法可以让我的“回声”在 PHP 中完成“fputs”的工作。用 PHP 的话来说,我想在命令行中执行此操作。例如

if (isset($argv[0])){
 // Some function to replace echo with fputs for the whole program
}

欢迎对此提出任何指示。

4

1 回答 1

4

您可以为此使用输出缓冲,因为它允许您指定可用于转换缓冲数据的回调函数。定义一个回调函数,它捕获缓冲的输出并将其写入文件,同时向浏览器返回一个空字符串:

$outfile = fopen('log.txt', 'wb');
ob_start(function($x) use($outfile) {
    fwrite($outfile, $x);
    return '';
});

如果您想在脚本期间将其关闭,以便再次将输出发送到浏览器,只需调用ob_end_flush();.

于 2014-12-30T16:29:42.817 回答