Maison  >  Article  >  développement back-end  >  Comment modifier par lots les noms de fichiers en PHP

Comment modifier par lots les noms de fichiers en PHP

高洛峰
高洛峰original
2017-03-01 17:11:342154parcourir

L'exemple de cet article décrit comment modifier par lots les noms de fichiers en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Ici, nous utilisons un exemple écrit par Battlefield pour analyser en détail les idées et les précautions d'utilisation de PHP pour modifier par lots les noms de fichiers.

À partir de cet exemple, vous verrez, Comment PHP détermine si un chemin est un répertoire, comment utiliser PHP pour obtenir le nom de fichier et l'extension de fichier dans le chemin, et l'application de base de la fonction aléatoire rand, Et le contenu principal de ce programme est l'application de base des fonctions récursives .

Fonctions du programme : Utilisez les fonctions de répertoire et de fichier PHP pour parcourir tous les fichiers et dossiers du répertoire indiqué par l'utilisateur et modifiez le nom du fichier

Déterminez d'abord le nom du fichier ; nom donné par l'utilisateur Le répertoire est-il un répertoire légal ?

Nous modifions uniquement le nom du fichier au sens étroit (hors répertoires), donc dans le programme nous devons déterminer s'il s'agit d'un répertoire. un répertoire, nous ouvrirons le répertoire - réalisant ainsi une itération dans tous les fichiers du répertoire. Sinon, nous modifierons le nom du fichier d'origine avec un nom aléatoire (il n'est pas scientifique d'utiliser des nombres aléatoires comme noms, mais ce n'est pas notre objectif).

Le programme spécifique est le suivant :

<?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;);
?>

Analyse du programme :

Ligne 4 Nous utilisons la fonction is_dir pour déterminer si le répertoire donné par l'utilisateur est un nom de répertoire valide ; parce que nous apprenons, nous l'écrivons simplement. Si vous souhaitez le mettre sur le serveur pour que tout le monde puisse l'utiliser, vous devez vérifier soigneusement le. données d'entrée - -Par exemple, si ce répertoire permet aux utilisateurs de le modifier, etc...

Notez que le jugement à la ligne 9 de la fonction doit être jugé par congruence (symbole de congruence PHP === trois égaux signes, non congruents ! == Un point d'exclamation et deux signes égal), sinon s'il y a un fichier avec un nom de 0 (zéro), le programme se terminera de manière inattendue

Ligne 12, si le fichier est lu ; est un répertoire, appelez la fonction ici elle-même, implémente la récursion de la fonction

Faites attention à l'utilisation de la fonction pathinfo à la ligne 16. Cette fonction renvoie un tableau avec trois éléments.

Le nom du répertoire du chemin du nom de répertoire, le nom de fichier contenu dans le chemin du nom de base et le nom d'extension du fichier d'extension. Veuillez vous référer aux parties pertinentes du manuel pour l'utilisation spécifique de cette fonction.

À la ligne 17 du programme, la fonction de nombre aléatoire rand de PHP est utilisée. Il s'agit d'une fonction aléatoire de base

Remarque : assurez-vous d'utiliser le readdir de PHP. Est-ce important. que les noms de fichiers lus par la fonction sont "." et ".." ? Vous pouvez essayer !

Pour plus d'articles sur la façon de modifier par lots les noms de fichiers en PHP, veuillez faire attention au site Web chinois de PHP !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn