php 怎样批量修改文本内容?
php 批量修改文本内容的方法:
//列出目录下文件 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);
推荐教程:《PHP视频教程》
以上是php 怎样批量修改文本内容?的详细内容。更多信息请关注PHP中文网其他相关文章!