我正在使用名为states
的文件夹中列出的几个文件
以下是我的文件所在位置的示例:
root/states/state_name/type_name/city_name.txt
此结构中有多个州,城市,类型和文件
我想查找数据库中的每个city Id
,然后将city_name.txt
重命名为city_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_id
返回false,foreach
循环返回下一个状态
我试图在每个循环中回显$ state,并返回一些�������� � �
个字符。
我的问题是PHP
scandir()
以错误的unicode返回波斯文件名。
我也试图在我的代码之上添加header
,但它没有做任何更改。
感谢任何建议和意见!