ホームページ >バックエンド開発 >PHPチュートリアル >PHPでファイル名を一括変更する方法

PHPでファイル名を一括変更する方法

高洛峰
高洛峰オリジナル
2017-03-01 17:11:342177ブラウズ

この記事の例では、PHP でファイル名をバッチ変更する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

ここでは、Battlefield によって作成された例を使用して、PHP を使用してファイル名を一括変更するためのアイデアと注意事項を詳細に分析します。

この例から、PHP がパスがディレクトリであるかどうかを判断する方法、PHP を使用してパス内のファイル名とファイル拡張子を取得する方法、ランダム関数 rand の基本的なアプリケーション、およびそのコアの内容がわかります。このプログラムは再帰関数の基本的な応用です

プログラム関数: PHP のディレクトリ関数とファイル関数を使用して、ユーザーが指定したディレクトリ内のすべてのファイルとフォルダーを検索し、ファイル名を変更します。

まず、ユーザーが指定したディレクトリが正当なディレクトリであるかどうかを判断します。

ここで行っているのは、狭義のファイル名を変更するだけです(ディレクトリを除く)。そのため、プログラム内でそれがディレクトリであるかどうかを判断する必要があります。ディレクトリである場合は、そのディレクトリを開き、それによってすべてのファイルを走査します。ディレクトリ内にあります。そうでない場合は、元のファイル名をランダムな名前で変更します (乱数を名前として使用するのは実際には非科学的ですが、これは私たちの焦点では​​ありません)。

具体的なプログラムは次のとおりです:

<?php
//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称
function fRename($dirname){
 if(!is_dir($dirname)){
 echo "{$dirname}不是一个有效的目录!";
 exit();
 }
 $handle = opendir($dirname);
 while(($fn = readdir($handle))!==false){
 if($fn!=&#39;.&#39;&&$fn!=&#39;..&#39;){
  $curDir = $dirname.&#39;/&#39;.$fn;
  if(is_dir($curDir)){
  fRename($curDir);
  }
  else{
  $path = pathinfo($curDir);
  $newname = $path[&#39;dirname&#39;].&#39;/&#39;.rand(0,100).&#39;.&#39;.$path[&#39;extension&#39;];
  rename($curDir,$newname);
  echo $curDir.&#39;---&#39;.$newname."<br>";
  }
 }
 }
}
//给出一个目录名称调用函数
fRename(&#39;pl&#39;);
?>

プログラム分析:

4行目では、is_dir関数を使用して、ユーザーが指定したディレクトリが有効なディレクトリ名であるかどうかを判断します。簡単に言うと、誰もが使用できるようにサーバー上にデータを置きたい場合は、入力データを慎重に検証する必要があります。たとえば、このディレクトリでユーザーが変更できるかどうかなど...

注意してください関数の 9 行目の判定には、完全な etc. (PHP の一致する記号 === 3 つの等号、一致していません! == 1 つの感嘆符と 2 つの等号) を使用する必要があります。そうでない場合は、ファイル名に名前が 0 (ゼロ) の場合、プログラムが予期せず終了します。

12 行目、読み取られたファイルがディレクトリの場合、関数の再帰を実装するためにここで関数自体を呼び出します。 16 行目の pathinfo 関数の使用法。この関数は 3 つの要素を含む配列を返します。3 つの要素は次のとおりです:

Dirname パスのディレクトリ名、basename パスに含まれるファイル名、および拡張ファイルの拡張子名。この機能の具体的な使用方法については、マニュアルの該当部分を参照してください。

プログラムの17行目ではPHPの乱数関数randを使用しています

注意:PHPのreaddir関数で読み込んだファイル名が「.」であるか「.」であるかを必ず確認してください。 " ".." これは重要なことですが、なぜですか?ぜひ試してみてください!

PHP でファイル名をバッチ変更する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。