用新文本写行到文件?

时间:2014-02-21 17:32:09

标签: php file

我正在尝试更新目录中所有html文件中公司地址的一部分。我试图弄清楚将新行重新插入文件的最佳方法。以下是我到目前为止所得到的。

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo){
    foreach(glob($fileinfo.'/*.*') as $file) {
        if(is_writable($file)){
            $file_parts = pathinfo($file);

        switch($file_parts['extension'])
        {
            case "html":
                $lines = file($file);
                foreach ($lines as $line_num => $line) {
                    $newline = str_replace("Suite 425", "Suite 800", $line);
                    echo $newline;
                }
            break;
         }
       }
    }
}
?>

1 个答案:

答案 0 :(得分:1)

尝试这样,但它没有经过测试,在您尝试所有文件之前进行测试,或者保持安全备份:)

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo){
    foreach(glob($fileinfo.'/*.*') as $file) {
        if(is_writable($file)){
            $file_parts = pathinfo($file);

        switch($file_parts['extension'])
        {
            case "html":
                $lines = file($file);
                $to_write='';
                $file_modified=false;
                foreach ($lines as $line_num => $line) {
                    $newline = str_replace("Suite 425", "Suite 800", $line);
                    $to_write.=$newline;
                    if($newline!=$line){
                       $file_modified=true;
                    }
                }
                if($file_modified){
                   $file_handle=fopen($file, 'w');
                   fwrite($file_handle, $to_write);
                   fclose($file_handle);
                }
            break;
         }
       }
    }
}
?>