作者:浅小念豆科k | 来源:互联网 | 2023-08-13 22:47
Ihaveafunctionthatisscanningdirsonserver,readfiles,dosomethingwithit,andthendelet
I have a function that is scanning dirs on server, read files, do something with it , and then deletes the dirs (nested)
我有一个函数在服务器上扫描dirs,读取文件,用它做一些事情,然后删除dirs(嵌套)
The function is quite long , So I will post the relevant part .
这个函数很长,所以我会贴出相关的部分。
//many other things ...
$dir_to_delete[] = $filename['dirname']; // the array to hold all the dirs.
} // end for each
$dir_to_delete_clean = array_unique($dir_to_delete); //clean array - we might have duplicated dir names
foreach ($dir_to_delete_clean as $delete) {
o99_deleteDirectory($delete) ;
}
// rmdir( $filename['dirname'] );
return $attc_id;
}
this is the delete function for non-empty dirs:
这是非空dirs的删除函数:
function o99_deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!o99_deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false;
}
return rmdir($dir);
}
It works great .
它的工作原理。
the problems is - when I checked for NON english characters ( German, Chinese, Hebrew, Arab, Cyrillic - or any other) - the script fails and stops...
问题是——当我检查非英语字符(德语、汉语、希伯来语、阿拉伯语、西里尔语——或任何其他)时——脚本失败并停止……
I then tried rename() , rmdir() etc. - they all fail. Is this a PHP bug ? How can I resolve the problem ? I can not even rename them to later delete 8because rename() fails as well...
然后我尝试了rename()、rmdir()等-它们都失败了。这是PHP bug吗?我如何解决这个问题?我甚至不能将它们重命名为后来的delete 8,因为rename()也失败了……
Any Ideas ??
有什么想法?
Edit I
编辑我
I forgot to mention that it is for wordpress plugin - but I would assume that it makes no difference...
我忘了说这是wordpress插件,但我认为这没有什么区别……
Edit II
编辑二世
I am posting here some languages if someone wants to try but do not have the right keyboard / language settings . I am not sure that cutting and pasting will give the right encoding, but can always try ...
我在这里发布了一些语言,如果有人想尝试,但没有正确的键盘/语言设置。我不确定剪切和粘贴是否会给出正确的编码,但可以一直尝试……
- עברית (hebrew)
- עברית(希伯来文)
- 中國的 (chinese traditional)
- 中國的(中国传统)
- عربي (arabic)
- عربي(阿拉伯语)
- кириллица (cyrillic)
- кириллица(斯拉夫字母)
- ελληνικά (greek)
- ελληνικά(希腊)
- öäüìíáàóò´Ä´` (German-Italian-Spanish and other european)
- oauiiaaoo´´”(German-Italian-Spanish和其他欧洲)
1 个解决方案