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 怎樣批次修改文字內容?的詳細內容,更多請關注TW511.COM其它相關文章!