php批量替換內容或指定目錄下所有檔案內容_PHP教程

來源:互聯網
上載者:User
要替換字串中的內容我們只要利用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了,那麼我們要替換目錄所有檔案的內容就需要先遍曆目錄再...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.