使用PHP中的特殊字符处理路径

时间:2014-02-26 21:12:40

标签: php utf-8 special-characters

我的问题是:如何/我应该如何创建目录,测试是否存在并使用名称中的特殊字符获取内容?

我的方案:我需要创建一个目录,在那里放一些图像,然后获取该目录内容。该目录可能包含特殊字符。例如 galería

使用mkdir()创建目录时,名称已更改为 galería 。所以对我有用的解决方案是utf8_decode()字符串。

到目前为止一直很好......

我将图片上传到该目录......

然后我尝试扫描目录:

$gallery = [];

if(is_dir($path)) //$path contains a valid path including my recently created directory
{
    $gallery = glob("$path*{.jpg,.gif,.png}", GLOB_BRACE);
}

echo "<pre>";
print_r($gallery);
echo "</pre>";

is_dir()返回false。所以我必须这样做才能进入if语句:

$path = mb_convert_encoding($path, "ISO-8859-1", "UTF-8");

现在is_dir()有效,但glob()没有。在这一点上,我应该提到mb_convert_encoding()之后,我得到的名字是 galer�a

任何帮助?

编辑:如果我使用 pictures 作为目录名,我不需要utf8_decode() mb_convert_encoding() }。 mk_dir()is_dir()glob()完美无缺地工作

0 个答案:

没有答案