0

我有一个错误系统,它接受date()和错误并将其插入到文件中:

$fp = fopen('errorFile.txt', 'a');
$message = "At the time: " . date("Y,m,d\|H:i:s") . " the following error took place: " . $e->getMessage();
fwrite($fp, $message);
fclose($fp);

我的问题:对于从第二个参数的 fopen 开始,我需要将指针放在开头并查看手册,并且我需要仅写入参数,将指针放在开头而不是将文件截断为零长度,我唯一发现的是参数'a '除了每次都在末尾的指针之外,所有的参数都很好,所以如果有人知道我可以使用什么参数,那么开头的指针和它是只写的它不会将文件截断为零长度,我也在尝试插入日期,例如:这里的时间是18:00 插入的时间是 15:00

4

2 回答 2

1

你可以试试这个逻辑

$message = "At the time: " . date("Y,m,d\|H:i:s") . " the following error took place: " . $e->getMessage();

$file = '/path/to/file';

$fileContents = file_get_contents($file);

file_put_contents($file, $message . $fileContents);
于 2012-07-30T15:37:29.543 回答
1

要在开始时获得指针,您需要使用 fseek 函数,例如:

fseek($fp, 0);//place pointer at beginning 

在 fseek 之后,您可以使用 fwrite 写入文件

$fp = fopen('errorFile.txt', 'a');
$message = "At the time: " . date("Y,m,d\|H:i:s") . " the following error took place: " . $e->getMessage();
 fseek($fp, 0);
fwrite($fp, $message);
fclose($fp);

有关 fseek 的更多详细信息,您可以参考PHP 文档

于 2016-07-07T14:13:57.147 回答