将数据存储到文件中时,error_log()和file_put_contents()之间的区别是什么?

时间:2013-06-22 07:27:57

标签: php

我想知道这两者之间的技术差异是什么:

error_log('test', 3, 'test.txt');

file_put_contents('test.txt', 'test', FILE_APPEND);
然而,他们似乎都花了相同的时间。

1 个答案:

答案 0 :(得分:2)

特别是在error_log('test', 3, 'test.txt')file_put_contents('test.txt', 'test', FILE_APPEND)之间,文档所说的内容(file_put_contentserror_log)没有区别,因为它们只会将其附加到文件中。

这些函数之间的主要区别在于error_log可以做的不仅仅是登录到能够发送到PHP的系统记录器的文件,将错误作为电子邮件发送或者如果设置的话将其发送到SAPI日志记录处理程序014

使用file_put_contents允许指定字符串,数组或流资源,而error_log仅允许指定字符串作为消息。这可能会产生影响,具体取决于您要记录的数据,但您的示例只是一个字符串,因此它没有任何重要性。

如果在您的示例中,您正在向文件写入简单的字符串错误消息,那么它们将具有相同的最终结果。尽管如此,我建议使用error_log,因为它允许以后更容易转换为发送电子邮件消息,并且函数名称更适合其未来维护代码的任务。

如果你不打算用它来编写错误信息(我只是说这是因为问题标题中选择了单词 - “存储数据时 ...”vs “当存储错误 ...”时,我建议在上面的段落中出于类似的原因使用file_put_contents,因为函数名称更适合未来代码维护者的任务。