PHP による文字化けファイルの走査の解決策: 最初に PHP サンプル ファイルを作成し、次にファイル エンコーディングを「GBK」に変更し、最後に「read_all」メソッドを使用してフォルダー内のすべてのファイルを走査します。
PHP ビデオ チュートリアル 」
最近のインタビューに深く衝撃を受け、故郷に戻りました河南省に1年以上滞在しました。赤ちゃんを産んだ後、IT業界の発展についていけなくなったと気づきました。
面接の過程で、この質問が質問項目に含まれていることを知りました。多くの企業の筆記試験問題に対応しており、仕事でもよく使われる機能です。
これは簡単なことではありませんか?
<?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'); ?>
安心してブラウザを開いてください
<?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'); ?>
コードの 17 行目に iconv を追加します。今回は問題ないはずです。
file と判断されます。次のファイルは読み込まれていません!
私は単独でテストしました
<?php $dir='D:\wamp\www\test\test_dir\子目录'; var_dump(is_dir($dir)); ?>
utf8 エンコード形式では実際には機能しません。
以上がPHPのファイルトラバーサルで文字化けが発生する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。