1

嗨,各位程序员,

我对 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\rPHP_EOL在许多组合中(在内容之前,之后,将内容分隔成段),但结果总是相同的:

内容被“粘贴”在现有内容之上,导致结果损坏。

我的逻辑表明,fwrite 必须有一个“为粘贴的内容添加更多空间”命令,但我找不到。

提前感谢您的任何见解:)

帕诺斯

4

0 回答 0