gpt4 book ai didi

Php unlink() 函数和西里尔文

转载 作者:可可西里 更新时间:2023-10-31 23:49:38 27 4
gpt4 key购买 nike

我在通过 unlink() 函数删除文件时遇到问题。当文件使用西里尔文名称时,该功能不起作用。

[24-Jul-2012 00:33:35 UTC] PHP Warning: unlink(/home/gtsvetan/public_html/мениджър.doc) [function.unlink]: No such file or directory in /home/gtsvetan/public_html/deleter.php on line 114

那么当名字被西里尔化时如何删除文件呢?

代码是:

$dir = is_array($dir) ? $dir : explode(',', $dir);
foreach($dir as $dirv) {
if(is_dir($dirv)) {
$objects = scandir($dirv);
foreach($objects as $object) {
if($object != "." && $object != "..") {
if(filetype($dirv."/".$object) == "dir") {
$this->delete($dirv."/".$object);
}
else {
unlink($dirv."/".$object);
}
}
}
reset($objects);
rmdir($dirv);
}
else {
unlink($dirv);
}
}

解决方法:

public function delete($dir) {
$dir = is_array($dir) ? $dir : explode(',', $dir);
foreach($dir as $dirv) {
if(is_dir($dirv)) {
$d = @dir($dirv) or die();
while(false !== ($entry = $d->read())) {
if($entry[0] == ".") {
continue;
}
if(is_dir($dirv.$entry.'/')) {
$this->delete($dirv.$entry.'/');
@rmdir($dirv.$entry);
}
elseif(is_readable($dirv.$entry)) {
@unlink($dirv.$entry);
}
}
$d->close();
}
else {
@unlink($dirv);
}
@rmdir($dirv);
}
}

这里是创建类实例的 ajax.php :)

case 'delete':
$location = $_POST['location'];
if(is_array($location)) {
foreach($location as $v) {
$loc[] = iconv('utf-8', 'cp1251', $v);
}
$pfm->delete($loc);
}
else {
$location = iconv('utf-8', 'cp1251', $location);
$pfm->delete($location);
}
break;

它非常适合我:)

最佳答案

如果播放不好,我建议先重命名。

关于Php unlink() 函数和西里尔文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com