View Single Post
Old 10-13-2003, 11:43 PM   #1 (permalink)
seretogis
Huggles, sir?
 
seretogis's Avatar
 
Location: Seattle
[php] Fun with files (a pseudo-primer)

A friend was wondering how to handle deleting entries from a file, so I whipped up this little example. It uses a file called "file.txt" which contains the numbers one through nine, one on each line. The script reads in the file, removes three of the numbers (for sake of example), and then writes the new version of the file. It's not very pretty or well documented, but it should serve as a decent example of a way to manipulate files with PHP.

LINKY (zip format): http://www.seretogis.org/files/linka...nwithfiles.zip

Contents of file.txt:
Quote:
1
2
3
4
5
6
7
8
9
Contents of funwithfiles.php:
PHP Code:
<?

    echo "Spit out contents of the file:<br>\n";

    $contents = file( "file.txt" );

    for ( $x = 0; $x <= count( $contents ); $x++ )
        echo $contents[$x] . "<br>\n";

    echo "<br><br>Now, delete 2,3,4 and write it to the file, and....<br>\n";

    for ( $x = 0; $x <= count( $contents ); $x++ ) {
        if ( trim( $contents[$x] ) == "2" )
            unset ( $contents[$x] );
        if ( trim( $contents[$x] ) == "3" )
            unset ( $contents[$x] );
        if ( trim( $contents[$x] ) == "4" )
            unset ( $contents[$x] );
    }

    unlink( "file.txt" );

    $writetome = fopen( "file.txt", "w" );

    $theresults = implode( "", $contents );

    fwrite( $writetome, $theresults );

    // final display

    echo "<br><br><br>Spit out contents of the file (again):<br>\n";

    $contents = file( "file.txt" );

    for ( $x = 0; $x <= count( $contents ); $x++ )
        echo $contents[$x] . "<br>\n";

    // fix up perms

    chmod( "file.txt", 0666 );
?>
__________________
seretogis - sieg heil
perfect little dream the kind that hurts the most, forgot how it feels well almost
no one to blame always the same, open my eyes wake up in flames
seretogis is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47