こんにちは、仲間のコーダー、
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 には「貼り付けたコンテンツに ADD MORE SPACE」コマンドが必要ですが、見つかりません。
洞察を事前にありがとう:)
パノス