Heim >Backend-Entwicklung >PHP-Tutorial >So erhalten Sie eine Dateierweiterung in PHP

So erhalten Sie eine Dateierweiterung in PHP

墨辰丷
墨辰丷Original
2018-06-02 09:09:382033Durchsuche

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.

  1. Keine Dateierweiterung

  2. Der Pfad enthält Zeichen, wie zum Beispiel /home/test.d/test.txt

  3. 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: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

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!

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