首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP中的非英语字符删除dir

用PHP中的非英语字符删除dir
EN

Stack Overflow用户
提问于 2012-07-30 14:28:24
回答 1查看 204关注 0票数 2

我有一个函数:扫描服务器上的dirs,读取文件,处理它,然后删除dirs (嵌套的)。

功能相当长,所以我会张贴相关的部分。

代码语言:javascript
复制
//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;
    }

这是用于非空dirs的delete函数:

代码语言:javascript
复制
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);
}

效果很好。

问题是-当我检查非英语字符(德语,汉语,希伯来语,阿拉伯语,西里尔语-或任何其他)-脚本失败并停止.

然后我尝试了rename()、rmdir()等等--它们都失败了。这是PHP错误吗?我如何解决这个问题?我甚至不能将它们重命名为稍后删除8,因为rename()也失败了.

有什么主意吗?

编辑I

我忘了提到它是为wordpress插件而设的--但我认为这并没有什么区别。

编辑II

我在这里张贴一些语言,如果有人想尝试,但没有正确的键盘/语言设置。我不确定剪切和粘贴是否会给出正确的编码,但总是可以尝试.

  • עברית(希伯来语)
  • 中國的(中国传统)
  • عربي(阿拉伯语)
  • 西里尔(кириллица)
  • ελληνικά(希腊语)
  • (德国-意大利-西班牙和其他欧洲国家)
EN

回答 1

Stack Overflow用户

发布于 2012-07-30 15:04:16

在扫描或删除目录之前,是否尝试设置区域设置。http://www.php.net/manual/en/function.setlocale.php

我还没试过,但你可以试一试。也许能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11723572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档