基本的に、ドキュメント上のいくつかのphp変数を分離し、変更後にそれらを元に戻す関数を作成しました。
関数を 1 回呼び出すと正常に実行されますが、2 回実行すると最後のセグメントの一部が切り取られます。また、毎回同じ金額がカットされるわけではありません。
これには何か理由があるのだろうかと思いました。
function editvar($filename, $old_var, $new_var)
{
$tmp = fopen($filename, "r");
$content=fread($tmp,filesize($filename));
fclose($tmp);
$ex = explode('<!---->', $content);
$expl = $ex[0];
$expl = explode('"', $ex[0]);
$expl[$old_var] = $new_var; // changed selected variable.
$ii = 0;
$ex[0] = "";
foreach($expl as $value) {
$ex[0] .= $expl[$ii];
if ($ii < count($expl) - 1)
{
$ex[0] .='"';
}
$ii++;
}
$ii = 0;
$new_content = "";
foreach($expl as $value)
{
$new_content .= $ex[$ii];
if ($ii < count($ex) - 1)
{
$new_content .= '<!---->';
}
$ii++;
}
$tmp = fopen($filename, "w");
fwrite($tmp, $new_content);
fclose($tmp);
}
それは次のように始まります:(ドキュメントの一番下)
<?php include_once "../../foo/foo.php"; ?>
そして次のようになります:(複数回の呼び出しの後)
<?php include_once "../../fo
関数の呼び出し
editvar($root, 1, $var1);
editvar($root, 3, $var2);
同じファイルを使用しているため、ファイルサイズが新しい編集された長さに変更されていないため、 freadと関係があるのでしょうか。それが誰かにとって意味があることを願っています笑-私はかなり疲れています..