请指导我:-
1. 如何读取/保存以乌尔都语/阿拉伯语保存的文件名的 utf8 字符。这对我 有用 $file_utf8 = iconv( "Windows-1256", "utf-8", $filepath ); ,但不读取所有文件名,跳过 80%。我也需要
2. 根据创建时间和大小对文件列表(文件名)进行排序。
3. 将排序后的列表保存在一个 utf-8 txt 文件 中,用这段代码解决了这部分问题:问题仍然是所有文件名都没有被读取
$myDr = fopen("list.txt", "w") or die("Unable to open file!");
foreach ($files as $f)
{
$path1 = iconv( "Windows-1256", "utf-8", $f );
echo $zz . " . " . $path1, "<br>\n";
$txtpoet2 = "$path1 \r\n" ;
fwrite($myDr, $txtpoet2);
$zz++;
}
fclose($myDr);
我在以乌尔都语保存文件名的目录和子目录中有很多图像。“ ترے عشق کی انتہا چاہتا ہوں.png " . 我想列出所有目录和子目录并保存在 unicode txt 文件中。我无法阅读 php编码中的乌尔都语字符。
我的环境是 Windows 7(64 位),使用 XAMPP - apache 作为服务器。我试过 C++ ,但找不到解决方案。
我正在使用以下 PHP 读取子目录中的所有文件:-
<?php
header('Content-type: text/html; charset=utf-8');
function listdir($dir='.')
{
if (!is_dir($dir))
{
return false;
}
$files = array();
listdiraux($dir, $files);
return $files;
}
function listdiraux($dir, &$files)
{
$handle = opendir($dir);
while ( false !==($file = readdir($handle)) )
{
if ($file == '.' || $file == '..')
{
continue;
}
$filepath = $dir == '.' ? $file : $dir . '/' . $file;
if (is_link($filepath)) continue;
if (is_file($filepath))
{
$files[] = $filepath;
else if (is_dir($filepath)) listdiraux($filepath, $files);
}
closedir($handle);
}
$files = listdir('.');
sort($files, SORT_LOCALE_STRING);
$zz = 0;
foreach ($files as $f)
{
echo $zz . " . " . $f, "<br>\n";
$zz++;
}
?>
此代码的来源是http://php.net/manual/en/function.readdir.php 。
谢谢大家。