Re: file management

From: Date: Sat, 08 Sep 2001 00:26:39 +0000
Subject: Re: file management
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-66503@lists.php.net to get a copy of this message
You know what, I think Im explaining myself wrong. The word truncate in itself means I believe to cut at the bottom. This isn't what I need. Basically, its a chat script and all the newer messages are at the bottom, and when the file reaches x bytes I want to 'cut off the head' of the file by x lines. leaving the most current messages at the bottom alone. Ive been messing around with truncate all this time getting the wrong results. Why cant files be as easy as databases.... :) If any one has a clue please point it to me. Meantime, back to the manual..... Thanks Sterling Hughes wrote:
On Fri, 7 Sep 2001, Gerard Samuel wrote:
Can a file be truncated from the beginning, and by x amount of lines?? Thanks
    Truncated from the beginning?  Do you mean truncate the file by X
    lines, starting from the first position in the file, well, yeah:
    <?php
    $fp = fopen("filename", "r+");
    // Start counting from 0, set to one, if you want to start counting
    // from 1
    $count = 0;
    while (!@feof($fp)) {
        // Not used, but unless your line lengths are longer than
        // 4K, this will effectively skip over a line
        $line = fgets($fp, 4096);
        if (++$count == $line_number_you_want) {
            ftruncate($fp, ftell($fp));
        }
    }
    fclose($fp);
    ?>
    Please note the above is devoid of error checking :)
    -Sterling


« previous php.general (#66503) next »