Maison  >  Article  >  développement back-end  >  Exemple détaillé de la solution au problème selon lequel la fonction file_exists en PHP ne prend pas en charge les noms chinois

Exemple détaillé de la solution au problème selon lequel la fonction file_exists en PHP ne prend pas en charge les noms chinois

怪我咯
怪我咯original
2017-07-11 10:37:191413parcourir

file_exists — Vérifiez si le fichier ou le répertoire existe ; la syntaxe est la suivante :

 file_exists ( $filename )

Le paramètre filename est le chemin du fichier ou répertoire. Renvoie TRUE si le fichier ou le répertoire spécifié par nom de fichier existe, FALSE sinon.

Cependant, cette fonction ne peut pas renvoyer la valeur correcte pour les noms de fichiers ou de dossiers chinois lorsque la page Web utilise le codage UTF8 et renvoie toujours false. Après les tests, nous avons trouvé une solution et analysé que la raison de cette situation devrait être que PHP ne peut pas juger correctement en raison de différents encodages.

Le code suivant ne peut pas renvoyer la valeur correcte, que le fichier soit présent ou non :

<?php;
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

echo file_exists($newfile);
?>

Après le test, une phrase a été ajoutée pour convertir l'encodage UTF8 en encodage GB2312. la phrase peut être jugée correctement :

<?php
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

$file=iconv(&#39;UTF-8&#39;,&#39;GB2312&#39;,$file);

echo file_exists($newfile);
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn