[英]Editing files in PHP
有没有一种方法可以使用PHP在文件中追加或删除一行文本。
我正在为我的特定Web托管堆栈编写一个托管控制面板,并且希望能够以最低的要求对文件进行更改,以触摸文件系统,因此,不必重写整个页面。文件以添加或删除配置选项。
对于追加,应将fopen
与$mode
a
。
请参阅有关如何从文件中删除行的信息。
是的,您可以以追加模式打开文件:
$fh = fopen('testFile.txt', 'a');
如果现在写入文件,则将附加新内容。
请参阅fopen
和此文档:
'a' :仅开放写作; 将文件指针放在文件末尾。 如果该文件不存在,请尝试创建它。
但是,无法删除最后一行。
如果需要在文件中间进行更改,则必须阅读,解析并保存回去。 否则,您只能在其末尾附加一些内容。
不过,您不必担心此操作的成本,因为它是一个配置文件,不可能每秒更改一百次,因此花费的时间可以忽略不计。
如果您想在访问/更新/删除方面更具灵活性,我认为您应该考虑将配置文件移至数据库表。
用PHP处理文件充满了陷阱,尤其是并发和锁定。 您正在编写配置文件的事实也意味着您将公开通常只有具有Web根特权的用户才能使用的任务。 您没有在帖子中提到这些事情,但是与解决这些问题相比,您的问题微不足道。
关于您的问题-尽管实现您的建议相当简单(例如通过执行sed-尽管您没有说明正在运行的操作系统),但我还是建议您以其他某种形式创建原始文件的副本-显而易见的候选对象是数据库-您可以在其中应用序列号并轻松创建要填充的间隙,或者在会话中存储PHP SplDoublyLinkedList。 然后,一旦用户完成了所需的更改,就可以从工作表示中通过一次操作重新生成文件。
请注意,最终,无论您如何实现该解决方案,该解决方案都将重写整个文件-这仅仅是在代码中公开了多少此过程的问题。
请记住,您所做的与大多数php Web脚本相同-除了它们在处理和请求HTML时,您使用的是不同的文件类型-因此您可能想看看其他PHP模板系统如何编写,并考虑是否可以为配置文件创建模板。
HTH
C。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.