文字列の内容を置換するには、strstr、str_replace、正規表現などの PHP 関連関数を使用するだけで済みます。その後、ディレクトリ内のすべてのファイルの内容を置換する場合は、最初にディレクトリを走査する必要があります。 、ファイルを開き、上記の関数を使用してそれを置き換えます。 まず、文字列内の特定の文字を変換する最も基本的な
strtr() 関数を見てみましょう。
文法
strtr (文字列、from、to) または
strtr(文字列,配列)
*/
コードは次のとおりです | コードをコピー |
$addr=strtr($addr,"","aao") //最初の呼び出しメソッド
echo strtr("hilla warld","ia","eo"); //配列 $arr = array("hello" => "hi", "world" => "earth"); |
/*
from と to の長さが異なる場合は、最も短い長さにフォーマットします。
別の簡単な関数を見てみましょう
// +------ 以前書いた置換関数
コードは次のとおりです | コードをコピー |
関数 file_modify($search_contents, $replace_contents, $filename) // +------ 使用法 |
または直接使用してください
// またはこれを直接使用します
コードは次のとおりです | コードをコピー |
preg_replace('|( )(^<]+)( )|iSU', "${1}" . 置換されたコンテンツ。 "$3" , $ str);
preg_replace('|( )(^<]+)( )|iSU', "${1}" . 置換されたコンテンツ。 "$3" , $ str);
|
上記の問題はすべて 1 つのファイル内の文字を置換するだけなので、サイトのすべてのディレクトリ内のファイル内の指定された文字を置換したい場合は、次の関数を見てみましょう
コードは次のとおりです | コードをコピー |
if (isset($_GET['dir'])){ //ファイルディレクトリを設定します $basedir=$_GET['ディレクトリ'] }その他{ $basedir = '.'; } $auto = 1; チェックディレクトリ($basedir) 関数 checkdir($basedir){ If ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { If ($file != '.' && $file != '..'){ If (!is_dir($basedir."/".$file)) { 「ファイル名: $basedir/$file ".checkBOM("$basedir/$file") Closedir($dh); } } 関数 checkBOM ($filename) { グローバル $auto $contents = ファイル_get_contents($ファイル名); $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); 書き換え ($filename, $rest); return ("BOM が見つかりました。自動的に削除されました。_http://www.hzhuti.com/nokia/c6/ "); } それ以外 { return ("BOM が見つかりました。"); } else return (「BOM が見つかりません。」); } 関数の書き換え ($filename, $data) { $filenum = fopen($filename, "w"); $filenum = fopen($filename, "w"); 群れ($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> このように、実行するだけで指定したディレクトリ内のすべてのファイルの内容を置き換えることができ、非常に便利です。 |