Heim >Backend-Entwicklung >PHP-Tutorial >So erhalten Sie eine Dateierweiterung in PHP
Dieser Artikel fasst mehrere Möglichkeiten zusammen, mit PHP den Suffixnamen einer Datei zu erhalten. Es ist sehr einfach und praktisch. Freunde in Not können darauf zurückgreifen.
Zum Beispiel das Suffix von Bilddateien oder GIF usw.
Es gibt zwei Methoden
Erstens, wenn $img der Name der Bilddatei ist
$img=12345.gif; $img_ext = substr($img, strrpos($img, '.'));
Zweitens verwenden Sie ein PHP-Array. Lesen Sie zuerst die Dateinamenzeichenfolge in das Array
$ext2=explode(".",$img); $count=count($ext2); $count2=$count-1; $file_name = $urlstr .'.'.$ext2[$count2];//得到后缀并重新定义新的文件名$file_name
. Hängen Sie außerdem die von anderen Freunden zusammengefasste Methode an:
第1种方法: function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2种方法: function get_extension($file) { return substr($file, strrpos($file, '.')+1); } 第3种方法: function get_extension($file) { return end(explode('.', $file)); } 第4种方法: function get_extension($file) { $info = pathinfo($file); return $info['extension']; } 第5种方法: function get_extension($file) { return pathinfo($file, PATHINFO_EXTENSION); }
Nach einem kurzen Blick auf die oben genannten Methoden scheinen sie alle zu funktionieren, insbesondere die Methoden 1 und 2, die ich verwendet habe, bevor ich nicht wusste, dass Pathinfo dies tut ein zweiter Parameter. Doch wenn man genau darüber nachdenkt, weisen die ersten vier Methoden verschiedene Mängel auf. Um die Dateierweiterung vollständig korrekt zu erhalten, müssen Sie mit den folgenden drei Sondersituationen umgehen können.
Keine Dateierweiterung
Der Pfad enthält Zeichen, wie zum Beispiel /home/test.d/test.txt
Der Pfad enthält die Zeichen ., aber die Datei hat keine Erweiterung. Zum Beispiel /home/test.d/test
Es ist offensichtlich: 1 und 2 können mit der dritten Situation nicht umgehen, und 3 kann mit der ersten und dritten Situation nicht richtig umgehen. 4 wird korrekt behandelt, aber wenn die Erweiterung nicht vorhanden ist, wird eine Warnung ausgegeben. Nur Methode 5 ist die korrekteste Methode. Schauen Sie sich übrigens die Pathinfo-Methode an. Die Einführung auf der offiziellen Website lautet wie folgt:
$file_path = pathinfo('/www/htdocs/your_image.jpg'); echo "$file_path ['dirname']\n"; echo "$file_path ['basename']\n"; echo "$file_path ['extension']\n"; echo "$file_path ['filename']\n"; // only in PHP 5.2+
Es wird ein Array zurückgegeben, das bis zu vier Elemente enthält, aber es werden nicht immer vier sein , wie zum Beispiel in Wenn es keine Erweiterung gibt, gibt es auch kein Erweiterungselement, sodass die Warnung in der vierten Methode gefunden wird. Aber phpinfo unterstützt auch den zweiten Parameter. Sie können eine Konstante übergeben, um einen bestimmten Teil der zurückzugebenden Daten anzugeben:
PATHINFO_DIRNAME - 目录 PATHINFO_BASENAME - 文件名(含扩展名) PATHINFO_EXTENSION - 扩展名 PATHINFO_FILENAME - 文件名(不含扩展名,PHP>5.2)
Die Werte dieser vier Konstanten sind 1, Zuerst dachte ich, ich könnte mehrere durch die OR-Operation angeben:
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME); Später stellte ich fest, dass dies nicht funktioniert. Dadurch wird nur die kleinste von mehreren ODER-Operationskonstanten zurückgegeben. Das heißt, das kleinste Bit unter den vier Flag-Bits ist eine Konstante.
Zusammenfassung der PHP-Implementierung zum Abrufen des übergeordneten Verzeichnisses der aktuellen Datei
PHP-Implementierung zum Abrufen die Client- und Server-End-IP-Kapselungsklasse
Algorithmus zur Implementierung von WeChat Red Envelopes basierend auf PHP
Das obige ist der detaillierte Inhalt vonSo erhalten Sie eine Dateierweiterung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!