如何在PHP中向文件中间插入一些文本

3
如何在php中在文件中间插入一些文本,是否有可用的方法在文件内容中间插入文本。不是准确地在文件中间,而是搜索关键字,然后我们需要在内容之前或之后插入。如果在文件中发现搜索关键字多次,那么会发生什么?

你的问题很难理解,也没有提供任何上下文。你能解释一下你想做什么,以及你所说的“插入文本”实际上是什么意思吗? - tomfumb
你的问题不清楚且缺乏充分的研究。这些信息可以在php.net上找到,而且非常容易找到。 - Brian Patterson
+1 因为研究这个问题让我在职业生涯中第一次发现了 fseek() 函数 ;) - Sampson
4个回答

10

使用 fopenfseekftellfwritefclose

// Create the file handler
$file = fopen("filename", "r+");
// Seek to the end
fseek($file, SEEK_END, 0);
// Get and save that position
$filesize = ftell($file);
// Seek to half the length of the file
fseek($file, SEEK_SET, $filesize / 2);
// Write your data
fwrite($file, "Data");
// Close the file handler
fclose($file);

2
在文件的正中间加上 +1。(如果您考虑了新内容的长度,我会再给您 +1) - Brad Christie
因为其他人都这么做了,所以+1。非常简单的答案。 - Ascherer
我只想在文件内容中搜索日期,然后在其后插入。 - Rajasekar Gunasekaran

6

6
  1. 打开源文件
  2. 打开新的目标文件
  3. 将源文件的"第一部分"复制到目标文件中
  4. 向目标文件添加新内容
  5. 将源文件的"最后一部分"复制到目标文件中
  6. 关闭两个文件
  7. 删除原始文件
  8. 重命名新文件

4
+1 表示推特上的“在文件中插入一些文本”并不意味着“覆盖原有内容”,而是“插入一个新行”。 - Charles

2

fopen, then fseek, then fwrite


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接