Richard Kurth wrote:

How can I read through a file and find a string and then replace it with a
new string and then save the whole file.

Below is a peace of what I need to search through. I need to find the string
subscribe_policy = open and replace it with subscribe_policy = open+confirm.
Then save the whole file.

I have tried str_replace but it just wipes out the original file.
<snip>

Have php...

1) Make a copy of the original:

if ( ! copy ( $old_file, $backup_file . ".bak" ) ) {
        // Uh-oh, there's an error
}

2) Read the original and open a temp file:

$file_contents = file ( $old_file );
if ( ! $fp = fopen ( $temp_file, "w+" ) ) {
        //  Oh my, can't open the file
}

3) Parse and write:

for ( $i = 0; $i < sizeof ( $file_contents ); $i++ ) {
        $write_this = preg_replace ( $pattern, $replacement, $file_contents[$i] );
        if ( ! fwrite ( $fp, $write_this ) ) {
                // Darn, can't write to the temp file
        }
}

4) Cleanup and copy temp file:

fclose ( $fp );
if ( ! copy ( $temp_file, $old_file ) ) {
        // Zoinks, there seems to be a problem
}

It's 5:00 am for me, and I'm typing all this from memory, so there may be bugs :) You can remove the temp file if you so desire if the above runs without error.

--
By-Tor.com
It's all about the Rush
http://www.by-tor.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to