In PHP ist Finfo_file () eine häufig verwendete Funktion, um den MIME -Typ oder andere Informationen einer Datei zu erhalten. Normalerweise gibt die Funktion finfo_file () den MIME -Typ der Datei zurück. Wenn wir das Ausgabedformat genauer steuern möchten, z.
Finfo :: set_flags () ist eine Methode der FinFO -Klasse, mit der wir steuern können, wie Dateiinformationen extrahiert werden. Durch das Einstellen der Flag -Bits können Sie das Verhalten der Funktion finfo_file () an die spezifischen Anforderungen anpassen.
In diesem Artikel wird detailliert vorgestellt, wie Sie Finfo :: set_flags () verwenden, um das Ausgabeformat von Finfo_File () zu ändern.
Finfo :: set_flags () ist eine Methode in der Finfo -Klasse. Es kann verwendet werden, um beim Abrufen von Dateiinformationen zusätzliche Flags festzulegen. Diese Flags steuern das spezifische Format und den Inhalt, das von den Dateiinformationen zurückgegeben wird. Die Finfo :: set_flags () -Methode akzeptiert eine oder mehrere konstante Flags, die das Parsingverhalten der Datei beeinflussen.
Zu den häufig verwendeten Flaggenkonstanten gehören:
FileInfo_Mime_Type : Gibt den MIME -Typ zurück (Standardverhalten).
FileInfo_Mime_encoding : Gibt die MIME -Codierung zurück.
FileInfo_Text : Gibt zurück, ob die Datei eine Textdatei ist.
DateiInfo_Preserve_atime : Halten Sie die letzte Zugriffszeit der Datei beim Öffnen.
Zunächst müssen wir ein FinFO -Objekt erstellen, um die Methode set_flags () zu verwenden.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// erstellen finfo Objekt</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">finfo</span></span><span>(FILEINFO_MIME);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Ein Finfo -Objekt wird oben erstellt und das Standard -MIME -MIME -Flag wird angegeben.
Mit der Methode set_flags () können Sie dem FinFO -Objekt zusätzliche Flags hinzufügen, um zu steuern, wie Dateiinformationen erhalten werden. Wir können den logischen oder Operator verwenden, um mehrere Flags zu kombinieren.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// aufstellen FILEINFO_MIME_TYPE Und FILEINFO_MIME_ENCODING Logo</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Der obige Code legt zwei Flags fest:
FileInfo_Mime_Type : Gibt den MIME -Typ der Datei zurück.
FileInfo_Mime_encoding : Gibt die MIME -Codierung zurück.
Sobald das Flag festgelegt ist, können Sie die Funktion finfo_file () verwenden, um die Dateiinformationen zu erhalten.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// verwenden finfo_file Holen Sie sich die Datei MIME 类型Und编码</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabedatei MIME 类型Und编码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fileInfo</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Zusätzlich zu FileInfo_Mime_Type und FileInfo_Mime_encoding enthält die Finfo -Klasse auch einige andere gängige Flags:
DateiInfo_Mime : Gibt den MIME -Typ der Datei zurück (ohne Codierung).
FileInfo_Text : Bestimmen Sie, ob die Datei eine Textdatei ist.
FileInfo_Devices : Wenn es sich bei der Datei um eine Gerätedatei handelt, wird der Gerätetyp zurückgegeben.
Wenn Sie beispielsweise den MIME -Typ einer Datei abrufen und feststellen möchten, ob es sich um eine Textdatei handelt, können Sie den folgenden Code verwenden:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// aufstellen FILEINFO_MIME Und FILEINFO_TEXT Logo</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME | FILEINFO_TEXT);
</span><span><span class="hljs-comment">// Dateiinformationen abrufen</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);
</span><span><span class="hljs-comment">// Dateiinformationen ausgeben</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fileInfo</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Angenommen, Sie haben mehrere Dateien und möchten sie gemäß Dateityp und Codierung verarbeiten. Dies können Sie dies tun:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// erstellen finfo Objekt</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">finfo</span></span><span>(FILEINFO_MIME);
</span><span><span class="hljs-comment">// aufstellenLogo,Erhalten MIME 类型Und编码</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING);
</span><span><span class="hljs-comment">// Dateiliste</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = [</span><span><span class="hljs-string">'example.jpg'</span></span><span>, </span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-string">'example.mp4'</span></span><span>];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-comment">// Dateiinformationen abrufen</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-comment">// 输出文件类型Und编码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"File: <span class="hljs-subst">$file</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"MIME Type and Encoding: <span class="hljs-subst">$fileInfo</span></span></span><span>\n\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Mit der FINFO :: SET_FLAGS () -Methode können wir das von finfo_file () zurückgegebene Dateiinformat flexibel anpassen. Abhängig von den spezifischen Anforderungen können wir verschiedene Flags festlegen, um detailliertere Informationen wie Dateityp, Codierung, unabhängig davon, ob es sich um eine Textdatei handelt. Auf diese Weise können Dateitypen genauer verarbeitet und analysiert werden, insbesondere bei der Verarbeitung mehrerer Dateienarten, die die Code -Flexibilität und -zuverlässigkeit verbessern können.
Indem Sie das Logo vernünftig konfigurieren, können Sie die Genauigkeit und Vollständigkeit des Erwerbs von Dateiinformationen sicherstellen und so die Entwicklung von Funktionen wie Datei -Upload und Dateiüberprüfung besser unterstützen.