0

このような機能で

function download($file_source, $file_target) {
    $rh = fopen($file_source, 'rb');
    $wh = fopen($file_target, 'wb');
    if (!$rh || !$wh) {
        return false;
    }

    while (!feof($rh)) {
        if (fwrite($wh, fread($rh, 1024)) === FALSE) {
            return false;
        }
    }

    fclose($rh);
    fclose($wh);

    return true;
}

カスタム文字列でファイルの最後の数バイトを書き換える最良の方法は何ですか?

ありがとう!

4

1 に答える 1

0

あなたの機能は、あるファイルから別のファイルにコンテンツをコピーします...これを行うための新しい機能があれば良いと思います

試す

$yourString = "The New String World";
$fileTarget = "log.txt";

// Replace Last bytes with this new String
replaceFromString($fileTarget, $yourString);

例 2

// Replace last 100bytes form file A to file B
replaceFromFile("a.log", "b.log", 100, - 100);

使用する機能

function replaceFromString($file, $content, $offsetIncrement = 0, $whence = SEEK_END) {
    $witePosition = - strlen($content);
    $wh = fopen($file, 'rb+');
    fseek($wh, $witePosition + $offsetIncrement, $whence);
    fwrite($wh, $content);
    fclose($wh);
}

function replaceFromFile($fileSource, $fileTarget, $bytes, $offest, $whence = SEEK_END) {
    $rh = fopen($fileSource, 'rb+');
    $wh = fopen($fileTarget, 'rb+');
    if (! $rh || ! $wh) {
        return false;
    }
    fseek($wh, $offest, $whence);
    if (fwrite($wh, fread($rh, $bytes)) === FALSE) {
        return false;
    }
    fclose($rh);
    fclose($wh);
    return true;
}
于 2012-10-30T22:59:00.720 に答える