嗨,各位程序员,
我对 fwrite 有一个奇怪的问题,恐怕我无法处理它。
我试图在“.tpl”文件的中间“插入”一个 html 元素,但我无法让它正常工作。
这是我的代码:
$config = './menu.tpl';
$file=fopen($config,"r+") or exit("Unable to open file!");
$insertPos=0; // used as index
while (!feof($file)) {
$line=fgets($file);
if (strpos($line, '<div id="target">the point of insertion</div>')!==false) {
$insertPos=ftell($file);
}
}
fseek($file,$insertPos);
fwrite($file, 'new content');
fclose($file);
你看,menu.tpl 是一个包含大量内容的大文件。
当 fwrite 开始追加内容时,它会覆盖下面的行,而不是添加新行。
我已经尝试了许多新行“命令”,例如\n
和 \r
,PHP_EOL
在许多组合中(在内容之前,之后,将内容分隔成段),但结果总是相同的:
内容被“粘贴”在现有内容之上,导致结果损坏。
我的逻辑表明,fwrite 必须有一个“为粘贴的内容添加更多空间”命令,但我找不到。
提前感谢您的任何见解:)
帕诺斯