Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在scandir()和rename()中使用波斯语字符_Php_Unicode_Persian_Scandir - Fatal编程技术网

PHP在scandir()和rename()中使用波斯语字符

PHP在scandir()和rename()中使用波斯语字符,php,unicode,persian,scandir,Php,Unicode,Persian,Scandir,我正在处理几个文件,这些文件列在名为states的文件夹中 下面是我的文件的确切位置示例: root/states/state\u name/type\u name/city\u name.txt 此结构中有多个州、城市、类型和文件。 我想在我的数据库中找到每个city Id,然后将city\u name.txt重命名为city\u Id.txt 以下是我所做的工作: header('Content-type: text/html; charset=utf-8'); include('dbcla

我正在处理几个文件,这些文件列在名为
states
的文件夹中
下面是我的文件的确切位置示例:
root/states/state\u name/type\u name/city\u name.txt

此结构中有多个州、城市、类型和文件。
我想在我的数据库中找到每个
city Id
,然后将
city\u name.txt
重命名为
city\u Id.txt

以下是我所做的工作:

header('Content-type: text/html; charset=utf-8');
include('dbclass/Db.class.php');
$db=new DB();
$states=scandir('states');
foreach($states as $state)
{
    if($state=='.'||$state=='..')
        continue;
    $state_id=$db->row('SELECT id FROM target_state WHERE state=:state',array('state'=>$state));
    if(!$state_id)
        continue;
    $types=scandir('states/'.$state);
    foreach($types as $type)
    {
        $cities=scandir('states/'.$state.'/'.$type);
        foreach($cities as $city)
        {
            $city_id=$db->row('SELECT id FROM target_city WHERE state_id=:state_id AND city=:city',array('state_id'=>$state_id['id'],'city'=>$city));
            rename('states/'.$state.'/'.$type.'/'.$city.'.txt','states/'.$state.'/'.$type.'/'.$city_id['id'].'.txt');
        }
    }
}
它根本不起作用
$state\u id
返回false,并且
foreach
循环到下一个状态。
我试图在每个循环中回显$state,并返回了一些
�������� � �字符

我的问题是PHP
scandir()
返回的波斯语文件名的unicode格式错误

我还试图在代码的顶部添加一个
标题
,但它没有做任何更改

任何建议和意见都将不胜感激