国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php批量替換內容或指定目錄下所有文件內容

2024-05-04 21:56:55
字體:
來源:轉載
供稿:網友

要替換字符串中的內容我們只要利用php相關函數,如strstr,str_replace,正則表達式了,那么我們要替換目錄所有文件的內容就需要先遍歷目錄再打開文件再利用上面講的函數替換了,我們先看最基本的.

strtr() 函數轉換字符串中特定的字符。

語法:strtr(string,from,to)或者strtr(string,array),代碼如下:

  1. $addr=strtr($addr,"","aao");  //第一種調用方法 
  2. $trans=array("hello"=>"hi","hi"=>"hello");  //定義一個轉換數組 
  3. echo strtr("hi all, i said hello",$trans);  //第二種調用方法 
  4.  
  5. //普通字符串 
  6. echo strtr("hilla warld","ia","eo"); 
  7. //數組 
  8. $arr = array("hello" => "hi""world" => "earth"); 
  9. echo strtr("hello world",$arr); 

如果 from 和 to 的長度不同,則格式化為最短的長度,再看一個簡單的函數,代碼如下:

  1. function file_modify($search_contents$replace_contents$filename
  2.         $fp = file_get_contents($filename); 
  3.         $new_fp = str_replace($search_contents$replace_contents$fp); 
  4.         file_put_contents($filename$new_fp); 
  5. // +------ 用法 
  6. file_modify('sdf hjhj''sdf_test hjhj_test''test10.html'); 

或者直接用如下這個:

  1. preg_replace('|(<div class="body">)(^<]+)(</div>)|iSU'"${1}" . 替換后的內容 . "$3"$str); 

上面我所說的所有問題都只會替換一個文件里面的,那么我想替換一個站點所有目錄里面文件指定字符,那么我們來看下面這個函數,代碼如下:

  1. <?php      
  2. if (isset($_GET['dir'])){ //設置文件目錄      
  3.     $basedir=$_GET['dir'];      
  4. }else{      
  5.     $basedir = '.';      
  6. }    
  7. $auto = 1;      
  8. checkdir($basedir);      
  9. function checkdir($basedir){      
  10.     if ($dh = opendir($basedir)) {      
  11.         while (($file = readdir($dh)) !== false) {      
  12.             if ($file != '.' && $file != '..'){      
  13.                 if (!is_dir($basedir."/".$file)) {      
  14.                     echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";      
  15.                 }else{      
  16.                     $dirname = $basedir."/".$file;      
  17.                     checkdir($dirname);      
  18.                 }      
  19.             }      
  20.         }      
  21.         closedir($dh);      
  22.     }      
  23. }      
  24. function checkBOM ($filename) {      
  25.     global $auto;      
  26.     $contents = file_get_contents($filename);      
  27.     $charset[1] = substr($contents, 0, 1);      
  28.     $charset[2] = substr($contents, 1, 1);      
  29.     $charset[3] = substr($contents, 2, 1);      
  30.     if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {      
  31.         if ($auto == 1) {      
  32.             $rest = substr($contents, 3);      
  33.             rewrite ($filename$rest);      
  34.             return ("<font color=red>BOM found, automatically removed._<a href=http://m.survivalescaperooms.com>http://m.survivalescaperooms.com/nokia/c6/</a></font>");      
  35.         } else {      
  36.             return ("<font color=red>BOM found.</font>");      
  37.         }      
  38.     }      
  39.     else return ("BOM Not Found.");      
  40. }      
  41. function rewrite ($filename$data) {      
  42.     $filenum = fopen($filename"w");      
  43.     flock($filenum, LOCK_EX);      
  44.     fwrite($filenum$data);      
  45.     fclose($filenum);      
  46. }      
  47. ?>   

這樣我們只要運行就可以替換指定目錄所所有文件的所有內容,這個還是特別方便的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂平县| 双峰县| 龙泉市| 邢台市| 永和县| 历史| 根河市| 饶河县| 信宜市| 柘荣县| 丰顺县| 阿拉尔市| 天镇县| 剑川县| 南溪县| 奎屯市| 辽中县| 泰安市| 广水市| 屏山县| 平乐县| 肃宁县| 融水| 和田市| 青海省| 五家渠市| 桓台县| 河池市| 卓资县| 庆元县| 郑州市| 忻州市| 盐城市| 滨州市| 克山县| 望都县| 定陶县| 堆龙德庆县| 桂林市| 习水县| 威海市|