某目录下很多文档,要批量替换某些字符串。
先遍历所有文档,确定要修改文档的后缀,再替换字符串,下例也可用正则替换。
$path='/var/www/golang'; $search='test string'; $replace=''; $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 ("/.html$/",$file)){//file type file_content_replace($path.'/'.$file, $search, $replace); echo ++$num.'.'.$file; }else echo $file.'-no file type-'; }//is_dir }//file }//withle closedir($handle); }//handle function file_content_replace($filename, $search, $replace){ $string = file_get_contents($filename); $new_string = str_replace($search, $replace, $string,$i); //echo 'result:'.$i; if($string !=$new_string) file_put_contents($filename, $new_string); }//file-
因为要写入内容,所以要确定文件、文件夹的权限,str_replace替换功能较弱,若是大段落替换,效果不佳。