Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie Dateinamen in PHP stapelweise

So ändern Sie Dateinamen in PHP stapelweise

高洛峰
高洛峰Original
2017-03-01 17:11:342113Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie Sie Dateinamen in PHP stapelweise ändern. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Hier verwenden wir ein von Battlefield geschriebenes Beispiel, um die Ideen und Vorsichtsmaßnahmen für die Verwendung von PHP zur Stapeländerung von Dateinamen im Detail zu analysieren.

Anhand dieses Beispiels werden Sie sehen, Wie PHP bestimmt, ob ein Pfad ein Verzeichnis ist, wie PHP verwendet wird, um den Dateinamen und die Dateierweiterung im Pfad zu erhalten, und die grundlegende Anwendung der Zufallsfunktion Rand, Und der Kerninhalt dieses Programms ist die grundlegende Anwendung rekursiver Funktionen .

Programmfunktionen: Verwenden Sie PHP-Verzeichnis- und Dateifunktionen, um alle Dateien und Ordner im vom Benutzer angegebenen Verzeichnis zu durchsuchen und den Dateinamen zu ändern.

Bestimmen Sie zunächst die Vom Benutzer angegebener Name Ist das Verzeichnis ein legales Verzeichnis?

Wir ändern den Dateinamen nur im engeren Sinne (ausgenommen Verzeichnisse), daher müssen wir im Programm feststellen, ob es sich um ein Verzeichnis handelt Wenn Sie ein Verzeichnis erstellen, öffnen wir das Verzeichnis und erreichen so eine Iteration durch alle Dateien im Verzeichnis. Wenn nicht, ändern wir den ursprünglichen Dateinamen durch einen zufälligen Namen (es ist nicht wissenschaftlich, Zufallszahlen als Namen zu verwenden, aber das ist nicht unser Fokus).

Das spezifische Programm lautet wie folgt:

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

Programmanalyse:

Linie 4 Wir verwenden die Funktion is_dir, um festzustellen, ob das vom Benutzer angegebene Verzeichnis ein gültiger Verzeichnisname ist. Wenn Sie es einfach auf den Server stellen möchten, müssen Sie dies sorgfältig überprüfen Eingabedaten - -Zum Beispiel, ob Benutzer in diesem Verzeichnis Änderungen vornehmen können usw.

Beachten Sie, dass die Beurteilung in Zeile 9 der Funktion anhand der Kongruenz beurteilt werden muss (PHP-Kongruenzsymbol === drei gleich). Zeichen, nicht deckungsgleich! == Ein Ausrufezeichen und zwei Gleichheitszeichen), andernfalls wird das Programm unerwartet beendet, wenn die Datei gelesen wird ist ein Verzeichnis, ruft die Funktion hier selbst auf und implementiert die Rekursion der Funktion.

Achten Sie auf die Verwendung der Pathinfo-Funktion in Zeile 16. Diese Funktion gibt ein Array mit drei Elementen zurück:

Der Verzeichnisname des Dirname-Pfads, der im Basisnamen-Pfad enthaltene Dateiname und der Erweiterungsname der Erweiterungsdatei. Informationen zur spezifischen Verwendung dieser Funktion finden Sie in den entsprechenden Teilen des Handbuchs.

In Zeile 17 des Programms wird PHPs Zufallszahlenfunktion rand verwendet, eine grundlegende Zufallsfunktion

Hinweis: Stellen Sie sicher, dass Sie PHPs readdir verwenden. Ist das wichtig? dass die von der Funktion gelesenen Dateinamen „.“ und „..“ sind? Sie können es versuchen! Weitere verwandte Artikel zum Batch-Ändern von Dateinamen in PHP finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn