用PHP编辑文件

时间:2010-02-14 10:37:29

标签: php text file-processing

有没有办法使用PHP附加或删除文件中的一行文本。

我正在为我的特定网络托管堆栈编写托管控制面板,并且希望能够以最低限度的要求对文件系统进行更改,因此不希望这样做重写整个文件以添加或删除配置选项。

5 个答案:

答案 0 :(得分:2)

如果没有首先将文件解析为行然后再将其写出来,则无法从文件中删除行。

您可以使用$mode$fp = fopen('myfile', 'a'); 设置为'a'

来附加到文件
{{1}}

答案 1 :(得分:2)

要进行追加,您应将fopen$mode a一起使用。

See this please,关于如何从文件中删除一行。

答案 2 :(得分:1)

是的,您可以在附加模式下打开文件:

$fh = fopen('testFile.txt', 'a');

如果您现在写入该文件,则会附加新内容。

请参阅fopen以及此文档:

  

'a':仅限写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。

虽然无法删除最后一行。

答案 3 :(得分:0)

如果您需要更改文件中间的内容,则必须阅读它,解析并保存。但是,你只能追加一些东西。

你不应该担心这个操作的成本,因为它是一个每秒不会改变一百次的配置文件,它应该花费的时间可以忽略不计。

如果您想要更灵活地访问/更新/删除,我认为您应该考虑将配置文件移动到数据库表。

答案 4 :(得分:0)

使用PHP中的文件充满了陷阱,尤其是并发和锁定。您正在编写配置文件的事实还意味着您正在公开通常仅对具有Web权限的用户可用的任务。您没有在帖子中提及这些内容,但与解决这些问题相比,您的问题微不足道。

关于你的问题 - 尽管实现你的建议是相当微不足道的(例如,通过执行sed - 尽管你没有说过它运行的操作系统)我建议在某些操作系统中创建原始文件的副本其他表示 - 明显的候选者将是一个数据库 - 您可以在其中应用序列号并轻松创建填充空白,或者存储在会话中的PHP SplDoublyLinkedList。然后,一旦用户根据需要进行了多次更改,就可以通过工作表示在单个操作中重新生成文件。

请注意,最终,无论您如何实施解决方案,解决方案都会重写整个文件 - 这只是在您的代码中公开了多少此过程的问题。

请记住,你所做的与大多​​数php网页脚本一样 - 除非他们操纵和重新编写HTML,你用不同的文件类型做 - 所以你可能想看看其他如何编写PHP模板系统,并考虑是否可以为配置文件创建模板。

HTH

下进行。