Dans PHP, finfo_file () est une fonction couramment utilisée pour obtenir le type MIME ou d'autres informations d'un fichier. Habituellement, la fonction finfo_file () renvoie le type MIME du fichier, et si nous voulons contrôler plus précisément le format de sortie, comme obtenir des informations plus détaillées ou modifier le format de sa valeur de retour, nous pouvons le faire via la méthode FINFO :: set_flags () .
Finfo :: set_flags () est une méthode de la classe FINFO , qui nous permet de contrôler comment les informations de fichier sont extraites. En définissant les bits d'indicateur, vous pouvez ajuster le comportement de la fonction finfo_file () en fonction des besoins spécifiques.
Cet article présentera en détail comment utiliser Finfo :: set_flags () pour modifier le format de sortie de finfo_file () .
finfo :: set_flags () est une méthode dans la classe FINFO . Il peut être utilisé pour définir des drapeaux supplémentaires lors de la récupération des informations de fichier. Ces drapeaux contrôlent le format et le contenu spécifiques renvoyés par les informations du fichier. La méthode finfo :: set_flags () accepte un ou plusieurs drapeaux constants qui affectent le comportement d'analyse du fichier.
Les constantes de drapeau couramment utilisées comprennent:
FileInfo_mime_type : renvoie le type MIME (comportement par défaut).
FileInfo_mime_encoding : renvoie le codage MIME.
FileInfo_text : renvoie si le fichier est un fichier texte.
FileInfo_preserve_atime : conserve le dernier temps d'accès du fichier lors de l'ouverture.
Tout d'abord, nous devons créer un objet FINFO pour utiliser sa méthode set_flags () .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// créer finfo Objet</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>
Un objet FINFO est créé ci-dessus et l'indicateur de type MIME par défaut est spécifié.
À l'aide de la méthode set_flags () , vous pouvez ajouter des indicateurs supplémentaires à l'objet FINFO pour contrôler la façon dont les informations de fichier sont obtenues. Nous pouvons utiliser le logique ou l'opérateur pour combiner plusieurs indicateurs.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// installation FILEINFO_MIME_TYPE et 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>
Le code ci-dessus définit deux drapeaux:
FileInfo_mime_type : renvoie le type mime du fichier.
FileInfo_mime_encoding : renvoie le codage MIME.
Une fois l'indicateur défini, vous pouvez utiliser la fonction finfo_file () pour obtenir les informations du fichier.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// utiliser finfo_file Obtenez le fichier MIME 类型et编码</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">// Fichier de sortie MIME 类型et编码</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>
En plus de fileinfo_mime_type et de fileinfo_mime_encoding , la classe FINFO fournit également d'autres indicateurs communs:
FileInfo_mime : renvoie le type MIME du fichier (hors codage).
FileInfo_Text : Déterminez si le fichier est un fichier texte.
FileInfo_Devices : Si le fichier est un fichier de périphérique, le type de périphérique est renvoyé.
Par exemple, si vous souhaitez obtenir le type MIME d'un fichier et déterminer s'il s'agit d'un fichier texte, vous pouvez utiliser le code suivant:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// installation FILEINFO_MIME et 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">// Obtenir des informations sur le fichier</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">// Informations sur le fichier de sortie</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>
Supposons que vous ayez plusieurs fichiers et que vous souhaitez les traiter en fonction du type de fichier et de l'encodage, vous pouvez le faire:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// créer finfo Objet</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">// installationLogo,Obtenir MIME 类型et编码</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">// Liste de fichiers</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">// Obtenir des informations sur le fichier</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">// 输出文件类型et编码</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>
À l'aide de la méthode finfo :: set_flags () , nous pouvons ajuster de manière flexible le format d'informations de fichier renvoyé par finfo_file () . Selon les besoins spécifiques, nous pouvons définir différents drapeaux pour obtenir des informations plus détaillées telles que le type de fichier, le codage, qu'il s'agisse d'un fichier texte. Cela permet de traiter et d'analyser plus précisément les types de fichiers, en particulier lors du traitement de plusieurs types de fichiers, ce qui peut améliorer la flexibilité et la fiabilité du code.
En configurant raisonnablement le logo, vous pouvez vous assurer la précision et l'exhaustivité de l'acquisition d'informations sur le fichier, mieux en prenant en charge le développement de fonctions telles que le téléchargement de fichiers et la vérification des fichiers.