1

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

谢谢大家。

4

1 回答 1

0

我找到了乌尔都语的解决方案,超过十亿人使用的语言,主要是印度、巴基斯坦、伊朗、阿富汗。在印度,它的方言使用但不同的脚本/字符。
感谢stackoverflow的所有成员

您会在www.rwpmall.com/urdu/poetry中发现很多改进

我需要代码中的这一行

**

$file_utf8 = iconv("Windows-1256", "utf-8", $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);   
?>

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

于 2015-03-15T00:11:28.250 回答