ホームページ  >  記事  >  バックエンド開発  >  PHP バッチ置換コンテンツ、または指定したディレクトリ内のすべてのファイルのコンテンツ_PHP チュートリアル

PHP バッチ置換コンテンツ、または指定したディレクトリ内のすべてのファイルのコンテンツ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:56:041323ブラウズ

文字列の内容を置換するには、strstr、str_replace、正規表現などの PHP 関連関数を使用するだけで済みます。その後、ディレクトリ内のすべてのファイルの内容を置換する場合は、最初にディレクトリを走査する必要があります。 、ファイルを開き、上記の関数を使用してそれを置き換えます。 まず、文字列内の特定の文字を変換する最も基本的な

strtr() 関数を見てみましょう。

文法
strtr (文字列、from、to) または

strtr(文字列,配列)

*/

コードは次のとおりです コードをコピー

$addr=strtr($addr,"","aao") //最初の呼び出しメソッド
$trans=array("hello"=>"hi","hi"=>"hello"); //変換配列を定義します
echo strtr("こんにちは、こんにちはと言った",$trans); // 2 番目の呼び出しメソッド


//通常の文字列

echo strtr("hilla warld","ia","eo");

//配列

$arr = array("hello" => "hi", "world" => "earth");
echo strtr("hello world",$arr);

/*
from と to の長さが異なる場合は、最も短い長さにフォーマットします。

別の簡単な関数を見てみましょう

// +------ 以前書いた置換関数

コードは次のとおりです コードをコピー

関数 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);


上記の問題はすべて 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); }
?>


このように、実行するだけで指定したディレクトリ内のすべてのファイルの内容を置き換えることができ、非常に便利です。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631636.html技術記事文字列の内容を置き換えるには、strstr、str_replace、正規表現などの PHP 関連関数を使用するだけで済みます。その後、ディレクトリ内のすべてのファイルの内容を置き換える場合は、まずディレクトリを走査する必要があります。それから...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。