La solution pour que PHP traverse des fichiers tronqués : créez d'abord un exemple de fichier PHP ; puis changez l'encodage du fichier en "GBK" ; enfin, utilisez la méthode "read_all" pour parcourir tous les fichiers du dossier.
Tutoriel vidéo PHP"
J'ai été profondément touché par la récente interview et je suis retourné dans ma ville natale dans le Henan depuis plus d'un an Après avoir eu un bébé, j'ai découvert que je ne pouvais plus suivre le développement de l'industrie informatique
Au cours du processus d'entretien, j'ai découvert que cette question était incluse dans l'examen écrit questions de nombreuses entreprises, et c'est aussi une fonction qui est souvent utilisée au travail.
N'est-ce pas un jeu d'enfant ?
<?php /* * 遍历文件夹下所有文件 * * 作者:郭猛 * 邮箱:martin.guo@qq.com * */ function read_all ($dir){ if(!is_dir($dir)) return false; $handle = opendir($dir); if($handle){ while(($fl = readdir($handle)) !== false){ $temp = $dir.DIRECTORY_SEPARATOR.$fl; //如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来 if(is_dir($temp) && $fl!='.' && $fl != '..'){ echo '目录:'.$temp.'<br>'; read_all($temp); }else{ if($fl!='.' && $fl != '..'){ echo '文件:'.$temp.'<br>'; } } } } } read_all('D:\wamp\www\test'); ?>
Ouvrez le navigateur en toute confiance
Je suis 屮Eh bien, qu'est-ce que c'est !
Dans l'environnement Windows, le codage du fichier est UTF8 Lorsqu'il y a un répertoire chinois dans le répertoire, des caractères tronqués seront affichés ! !
À l'heure actuelle, l'encodage de mes fichiers et celui de l'affichage de mon navigateur sont tous deux utf-8. Je pensais que le nom du répertoire de Windows était GBK, j'utilise donc iconv pour convertir le format d'encodage. J'ai modifié le code comme suit. Ligne 17 :
<?php /* * 遍历文件夹下所有文件 * * 作者:郭猛 * 邮箱:martin.guo@qq.com * */ function read_all ($dir){ if(!is_dir($dir)) return false; $handle = opendir($dir); if($handle){ while(($fl = readdir($handle)) !== false){ $temp = iconv('GBK','utf-8',$dir.DIRECTORY_SEPARATOR.$fl);//转换成utf-8格式 //如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来 if(is_dir($temp) && $fl!='.' && $fl != '..'){ echo '目录:'.$temp.'<br>'; read_all($temp); }else{ if($fl!='.' && $fl != '..'){ echo '文件:'.$temp.'<br>'; } } } } } read_all('D:\wamp\www\test'); ?>
Ajoutez iconv à la 17ème ligne de code, ça ne doit poser aucun problème cette fois
Fichier ! Le fichier suivant n'a pas été lu !
Je l'ai testé seul
<?php $dir='D:\wamp\www\test\test_dir\子目录'; var_dump(is_dir($dir)); ?>
Ça ne fonctionne vraiment pas au format d'encodage utf8
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!