如何使用PHP的glob函数来获取没有路径输出的目录?

时间:2015-01-16 00:56:31

标签: php glob

我注意到有关PHP的glob函数的一些有趣的东西。

当我这样做时

$directories = glob('*', GLOB_ONLYDIR);
echo json_encode($directories);

该函数将在json数组中返回一堆文件夹的名称,太棒了!

但是当我做的时候

$directories = glob('./img/works/*', GLOB_ONLYDIR);
echo json_encode($directories);

该函数将返回一堆文件夹的名称,其路径如下所示:

[".\/img\/works\/123",
 ".\/img\/works\/234",
 ".\/img\/works\/345",
 ".\/img\/works\/456"]

这是正常的吗?如果是,如何让glob函数只输出文件夹的名称?

一个相关的问题是:在调用glob函数时是否有办法同时使用GLOB_NOESCAPE GLOB_ONLYDIR标志?

1 个答案:

答案 0 :(得分:3)

是的,行为应该是这样!如果你愿意,你可以做这样的事情,只获得目录名称:

$directories = array_map("basename", glob('./test/*', GLOB_ONLYDIR));
echo json_encode($directories);

修改

是的,你可以在glob中使用多个标志,这很简单:

$directories = array_map("basename", glob('./test/*', GLOB_ONLYDIR | GLOB_NOESCAPE));