批量替换文本内容-PHP操作文件方法

来源:互联网 发布:造梦西游3瘴气源码 编辑:程序博客网 时间:2024/05/21 08:59

//列出目录下文件

function file_list($path){
    $num = 0;
    if($handle = opendir($path)){
        while(false !== $file=readdir($handle)){
            if($file !='.' && $file !='..'){
                if(is_dir($path. '/'. $file)){
                    file_list($path. '/'. $file);
                }else{
                    if(preg_match ("/.php$/", $file)){  //这里匹配是否PHP文件
                        file_content_replace($path.'/'.$file, 'PPCART_TEXT_SUCCESS', '***********'); //这里的替换方式;开始替换文本
                        echo '++++++++++'. $file.'++++++++++<br />';
                    }
                    else echo '------非PHP文件------<br />';
                    $num++;
                }
            }
        }
        closedir($handle);
    }

}

function myScanDir($path) {
    $result = scandir($path);
    foreach($result as $re) {
        if($re == '.' || $re == '..') continue;
        $dir = $path.'/'.$re;
        if(is_dir($dir)) {
            showDir($dir);
            continue;
        }
        echo $dir."<br />";
    }
}


//比较替换;参数依次:文件名、被替换字符串、替换字符串;file_get_contents(),file_put_contents(),str_replace()配合使用
function file_content_replace($filename, $search, $replace){
    $string = file_get_contents($filename);
    $new_string = str_replace($search, $replace, $string);
    if($string !=$new_string) file_put_contents($filename, $new_string);
}

//////////////////////===================

操作文件的函数有很多有用的:

===========================

file()把文件读入一个数组中,(便可以逐行显示文件内容)

//逐行显示文件内容
function show_line($file){
    $lines = file($file);
    foreach($lines as $line_num => $line){
        if(preg_match ("/PPCART_TEXT_SUCCESS/", $line)){
            $add = '********************math********************';
        }else{
            $add = '-----------------------------------------------';
        }
        echo "Line #<b>{$line_num}</b>: ". htmlspecialchars($line). $add. '<br />';
    }
    $line = NUll;
    $lines = NUll;
    $line_num = NUll;
}

===========================

不把文件内在读出来放到另人变量里的,直接读取文件缓存中的内容

$fp = fopen($file, 'r');  //以读方式打开文件;$fp = fopen($file, 'r+');//以读写方式打开;$fp = fopen($file, 'a');//以写追加方式打开

// read some data
$data = fread($fp, 18);  

  //fgetc()读字符串 | fgets()读行 | fgetss()读行并去标签 | fread()读文件 | stream_get_line()读文件

var_dump($data);echo '-----------<br />';
// move back to the begining of the file
// same as rewind($fp);
fseek($fp, 10);  //设置文件指针

$data = fread($fp, 9);
var_dump($data);echo '<br />';

fclose($fp);

原创粉丝点击