|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2017-07-20 21:03 UTC] global dot ninety at gmail dot com
Description: ------------ scandir Have Problem with UTF8 Character Please check this image: http://i.imgur.com/3K2Y9YZ.jpg my folders and files name is UTF8 character (Farsi). i need scan directorys for get list files with ScanDir , but this function have problem with UTF8 name. Tested Information: (i have linux host in HostUpon) System: Linux cs11.uhcloud.com 2.6.32-673.8.1.lve1.4.3.el6.x86_64 #1 SMP Wed Feb 10 08:57:30 EST 2016 x86_64 PHP Version: 7.1.7 Test script: --------------- $files = scanDirectories('files'); print_r($files); public static function scanDirectories($rootDir, $allData=array()) { $invisibleFileNames = array(".", ".."); $dirContent = scandir($rootDir); foreach($dirContent as $key => $content) { $path = $rootDir.'/'.$content; if(!in_array($content, $invisibleFileNames)) { if(Self::isFile($path)) { $allData[] = $path; }elseif(Self::isDir($path)) { $allData = Self::scanDirectories($path, $allData); } } } return $allData; } public static function isDir($path) { $result = pathinfo($path); if (!array_key_exists("extension",$result)) { return true; } else { return false; } } public static function isFile($path) { $result = pathinfo($path); if (array_key_exists("extension",$result)) { return true; } else { return false; } } PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 12:00:01 2025 UTC |
To help diagnose what's happening here, could you provide the output of this loop where you are currently using print_r() to produce what's in the image? foreach (scandir($dir) as $file) { var_dump(urlencode($file)); } Basically, the urlencode() will help us make sense to what *is* showing up in the filename instead of what you expect.