当 php 文件写入时捕获

Catch when php file written to

我想知道是否可以强制 PHP 作为文件执行而不是被覆盖?

我已经设置了用于记录的 sendmail -X 选项,它将愉快地记录到一个文件中。当我将它设置为指向 PHP 文件时,它附加到实际文件。无论如何(我正在使用 Ubuntu)有效地 运行 文件而不是写入文件?

当前读取的文件(我要执行):

<?php
$pointer = fopen('php://stdin', 'r');

file_put_contents('/home/www/dev1/log.log',$pointer);
?>

如果您正在使用 Bash,您可以尝试 process substituion:

sendmail other-args -X >(php your-php-file.php)

这会将内容直接传递给 PHP 文件的标准输入。

但是,请使用 stream_copy_to_stream,因为如果您使用 stream_get_contents 或其他类似的一次性函数,在进程关闭之前不会写入任何内容。