要替換字串中的內容我們只要利用php相關函數,如strstr,str_replace,Regex了,那麼我們要替換目錄所有檔案的內容就需要先遍曆目錄再開啟檔案再利用上面講的函數替換了。先我們看最基本
strtr() 函數轉換字串中特定的字元。
文法
strtr(string,from,to)或者
strtr(string,array)
*/
| 代碼如下 |
複製代碼 |
$addr=strtr($addr,"","aao"); //第一種調用方法 $trans=array("hello"=>"hi","hi"=>"hello"); //定義一個轉換數組 echo strtr("hi all, i said hello",$trans); //第二種調用方法 //一般字元串
echo strtr("hilla warld","ia","eo"); //數組 $arr = array("hello" => "hi", "world" => "earth"); echo strtr("hello world",$arr); |
/*
如果 from 和 to 的長度不同,則格式化為最短的長度。
再看一個簡單的函數
// +------ 我以前寫的一個替換函數
| 代碼如下 |
複製代碼 |
function file_modify($search_contents, $replace_contents, $filename) { $fp = file_get_contents($filename); $new_fp = str_replace($search_contents, $replace_contents, $fp); file_put_contents($filename, $new_fp); } // +------ 用法 file_modify('sdf hjhj', 'sdf_test hjhj_test', 'test10.html'); |
或直接用
// 或者直接用這個
| 代碼如下 |
複製代碼 |
preg_replace('|()(^<]+)()|iSU', "${1}" . 替換後的內容 . "$3", $str); preg_replace('|()(^<]+)()|iSU', "${1}" . 替換後的內容 . "$3", $str); |
上面我所說的所有問題都只會替換一個檔案裡面的,那麼我想替換一個網站所有目錄裡面檔案指定字元,那麼我們來看下面這個函數
| 代碼如下 |
複製代碼 |
if (isset($_GET['dir'])){ //設定檔案目錄 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..'){ if (!is_dir($basedir."/".$file)) { echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." "; }else{ $dirname = $basedir."/".$file; checkdir($dirname); } } } closedir($dh); } } function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { $rest = substr($contents, 3); rewrite ($filename, $rest); return ("BOM found, automatically removed._http://www.hzhuti.com/nokia/c6/"); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> |
這樣我們只要運行就可以替換指定目錄所所有檔案的所有內容,這個還是特別方便的。
http://www.bkjia.com/PHPjc/631636.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631636.htmlTechArticle要替換字串中的內容我們只要利用php相關函數,如strstr,str_replace,Regex了,那麼我們要替換目錄所有檔案的內容就需要先遍曆目錄再...