Mehrere Möglichkeiten, Dateierweiterungen in PHP zu ermitteln und abzurufen

墨辰丷
Freigeben: 2023-03-30 12:44:02
Original
2125 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich verschiedene Methoden zum Beurteilen und Erhalten von Dateierweiterungen in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Der folgende Code dient zur Bestimmung der Dateierweiterung in PHP

<!DOCTYPE>
<html>
<head>
 <meta http-equiv="Content-type" content="text/html" charset="utf-8">
 <title>check file</title>
</head>
<body>
<b>文件扩展名验证</b>
<input type="text" name="int" value="文件.php" onblur="check(this)" id="int">
<input type="button" value="检测" onclick="check_value()">
<script>
 function check(obj){
  if(obj.value == "" || obj.value.length<3){
   alert("输入的长度不能小于3且不能为空!");
   obj.focus();
  }
 }
 function check_value(){
  var str = $("int").value;
  var repx = /\.(php|asp|jsp)$/i;
  var type = str.substring(str.lastIndexOf("."),str.length);
  if(type.match(repx) && str.lastIndexOf(".") != -1){
   alert("文件扩展名正确");
   $("int").focus();
  }else{
   alert("文件扩展名有误");
   $("int").focus();
  }
 }
 function $(obj){
  return document.getElementById(obj);
 }
</script>
</body>
</html>
Nach dem Login kopieren

N Möglichkeiten, die Dateierweiterung einzugeben PHP

Grundsätzlich folgende Methoden:

Die 1. Methode:

function get_extension($file)
{
substr(strrchr($file, &#39;.&#39;), 1);
}
Nach dem Login kopieren

Die 2. Methode:

function get_extension($file)
{
return substr($file, strrpos($file, &#39;.&#39;)+1);
}
Nach dem Login kopieren

Die 3. Methode Methode:

function get_extension($file)
{
return end(explode(&#39;.&#39;, $file));
}
Nach dem Login kopieren

4. Methode:

function get_extension($file)
{
$info = pathinfo($file);
return $info[&#39;extension&#39;];
}
Nach dem Login kopieren

5. Methode:

function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}
Nach dem Login kopieren

Nach einem kurzen Blick auf die oben genannten Methoden scheinen sie alle zu funktionieren, insbesondere die 1. 2 Methoden, die ich ausprobiert habe Ich wusste vorher nicht, 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(&#39;/www/htdocs/your_image.jpg&#39;);
echo "$file_path [&#39;dirname&#39;]\n";
echo "$file_path [&#39;basename&#39;]\n";
echo "$file_path [&#39;extension&#39;]\n";
echo "$file_path [&#39;filename&#39;]\n"; // only in PHP 5.2+
Nach dem Login kopieren

Es wird ein Array zurückgegeben, das bis zu vier Elemente enthält, aber es werden nicht immer vier sein. Wenn es beispielsweise keine Erweiterung gibt, gibt es auch keine Erweiterung Deshalb wird die Warnung in der 4. Methode gefunden. 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 – Verzeichnis
PATHINFO_BASENAME – Dateiname (einschließlich Erweiterung)
PATHINFO_EXTENSION – Erweiterung
PATHINFO_FILENAME – Dateiname (ohne Erweiterung) Erweiterung, PHP>5.2)

Die Werte dieser vier Konstanten sind 1, 2, 4 bzw. 8. Zuerst dachte ich, ich könnte durch die ODER-Operation mehrere angeben:

pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
Nach dem Login kopieren

Später stellt sich heraus, dass dies nicht funktioniert. Dadurch wird nur die kleinste von mehreren ODER-Konstanten 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:

PHP implementiert SSL-Verschlüsselung, -Entschlüsselung, -Verifizierung und -Signatur

Singleton-Modus in PHP Ausführliche Erklärung und Beispiele für Fabrikmuster

PHP unterstützt das Herunterladen chinesischer Dateien

Das obige ist der detaillierte Inhalt vonMehrere Möglichkeiten, Dateierweiterungen in PHP zu ermitteln und abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!