-1

基本的に、ドキュメント上のいくつかの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と関係があるのでしょうか。それが誰かにとって意味があることを願っています笑-私はかなり疲れています..

4

1 に答える 1