Heim >Backend-Entwicklung >PHP-Tutorial >Mehrere Möglichkeiten, Dateierweiterungen in PHP zu erhalten
Dieser Artikel stellt Ihnen hauptsächlich verschiedene Methoden zum Erhalten von Dateierweiterungen in PHP vor. Ich hoffe, er kann Ihnen helfen.
Aus dem Internet gesammelt, grundsätzlich auf folgende Weise:
Die erste Methode:
function get_extension($file) { substr(strrchr($file, '.'), 1); }
Hinweis:
strrchr( )-Funktion findet die letztes Vorkommen einer Zeichenfolge innerhalb einer anderen Zeichenfolge und gibt alle Zeichen von dieser Position bis zum Ende der Zeichenfolge zurück.
substr()-Funktion gibt einen Teil einer Zeichenfolge zurück.
Methode 2:
function get_extension($file) { return substr($file, strrpos($file, '.')+1); }
Hinweis:
strrpos()-Funktion findet das letzte Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge.
substr()-Funktion gibt einen Teil einer Zeichenfolge zurück.
Die dritte Methode:
function get_extension($file) { return end(explode('.', $file)); }
Hinweis: Die Funktion
explode() zerlegt die Zeichenfolge in ein Array. Die Funktion
end() setzt den Array-internen Zeiger auf das letzte Element und gibt den Wert dieses Elements zurück (bei Erfolg).
Die 4. Methode:
function get_extension($file) { $info = pathinfo($file); return $info['extension']; }
Hinweis: Die Funktion
pathinfo() gibt die Dateipfadinformationen in Form eines Arrays zurück.
Die fünfte Methode:
function get_extension($file) { return pathinfo($file, PATHINFO_EXTENSION); }
Hinweis: Die Funktion
pathinfo() gibt Dateipfadinformationen in Form eines Arrays zurück.
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 einen zweiten Parameter hat. 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 die Zeichen., wie zum Beispiel /home/test.d/test.txt
Der Pfad enthält die Zeichen., aber die Datei verlängert sich nicht. 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 mit bis zu vier Elementen zurückgegeben, aber es werden nicht immer vier sein. Wenn es beispielsweise keine Erweiterung gibt, wird es eine geben Da kein Erweiterungselement vorhanden ist, erkennt die vierte Methode nur die Warnung. 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 jeweils 1, 2, 4 und 8 Ich könnte durch die OR-Operation mehrere angeben:
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
Später habe ich herausgefunden, dass das nicht funktioniert, es wird nur das kleinste von mehreren zurückgeben ODER-Konstanten. Das heißt, das kleinste Bit unter den vier Flag-Bits ist eine Konstante von 1.
Verwandte Empfehlungen:
So verwenden Sie PHP, um Dateierweiterungen zu ermitteln
php-Beispielcode zum Erhalten von Dateierweiterungen
Zusammenfassung des Beispielcodes zum Erhalten der Dateierweiterung in PHP
Das obige ist der detaillierte Inhalt vonMehrere Möglichkeiten, Dateierweiterungen in PHP zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!