提问人:Andrew 提问时间:12/2/2022 最后编辑:Andrew 更新时间:12/2/2022 访问量:50
使用 PHP 重命名包含特殊字符的文件夹
Rename folder which contains special characters using PHP
问:
我的数据库和目录中都有以下名称。
Zúñnga
Mariè
etc...
问题是我试图这样做:
$oldname = '/home/website/public_html/profile/Zúñnga';
$newname = '/home/website/public_html/profile/Zuunga';
rename($oldname, $newname)
而且它不起作用......
这些名称存储在数据库中。
这是我一直用来从数据库中获取名称的以下脚本,将它们转换为 UTF-8,但只是重命名功能不起作用......
...
foreach($query as $item)
{
$name_tags = utf8_encode($item['name_tags']);
$oldname = '/home/website/public_html/profile/'.$name_tags.'';
$text = iconv('UTF-8','ASCII//TRANSLIT', $name_tags);
$text_1 = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $text);
$text_2 = preg_replace("/[^A-Za-z0-9- ]/", '', $text_1);
$name_tags_updated = str_replace(" ", "-", $text_2);
$newname = '/home/website/public_html/profile/'.$name_tags_updated.'';
rename($oldname, $newname)
$sql = 'UPDATE posts SET name_tags = "'.$name_tags_updated.'" where id = "'.$item['id'].'";
...
}
查询部分工作正常;它用数据库中的好字母替换名称,但是当涉及到重命名目录时,它根本不起作用。它没有将名称更改为实际文件,而是没有。我试图以这种方式验证它
if(rename($oldname, $newname))
echo 'success';
else
echo 'fail';
它返回失败
在我的网站上,有时它们会像这样返回:
Mari�
答: 暂无答案
评论
é
é
glob()
bin2hex()
utf8_encode()
utf8_decode()