如何在php中读取保存为utf8(urdu / arabic字符)的文件名?

时间:2015-03-13 21:35:42

标签: php sorting utf-8 filenames urdu

请指导我: -
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

感谢大家。

1 个答案:

答案 0 :(得分:0)

我找到了乌尔都语的解决方案,超过10亿人口使用的语言,主要是印度,巴基斯坦,伊朗和阿富汗。在印度,使用其方言,但使用不同的剧本/字符 我对stackoverflow的所有成员表示赞赏

您将在 www.rwpmall.com/urdu/poetry

中找到很多改进

我在代码中需要这一行

**

$ file_utf8 = iconv(&#34; Windows-1256&#34;,&#34; utf-8&#34;,$ sub);

**

我发布了帮助他人的完整解决方案:

<?php 
$dir = "."; 

function ReadFolderDirectory($dir) 
    { 
    $listDir = array(); 
    if($handler = opendir($dir)) { 
    while (($sub = readdir($handler)) !== FALSE) 
            { 
            if ($sub != "." && $sub != ".." && $sub != "Thumb.db") 
                { 
                if(is_file($dir."/".$sub)) 
                    { 
                    $file_utf8 = iconv( "Windows-1256", "utf-8", $sub );
                    $listDir[] = $sub; 
                    //  echo  $file_utf8 ."<br>";
                    echo  $dir."/".$file_utf8 ."<br>";
                    }
                elseif(is_dir($dir."/".$sub))
                    {
                    echo "  New Sub Directory :  >>>>     ". $dir."/".$sub . " <br> "; 
                    $listDir[$sub] = ReadFolderDirectory($dir."/".$sub); 
                    } 
                } 
            }    
            closedir($handler); 
        } 

        return $listDir;    
    } 
  ReadFolderDirectory($dir);   
?>

的问候。
愿上帝赐予我们智慧,使这个地球成为人类更美好的地方。