从本地到服务器的不同glob()结果(Windows vs Linux)

时间:2011-09-25 15:09:29

标签: php regex glob

我只想选择以数字或字母开头的文件:

$files = glob($xsl_dir_path . "/[^a-zA-Z0-9]*.xsl");
$files = array_map('basename', $files);

有3个文件:a.xsl,b.xsl,_functions.xsl。我不想选择_functions.xsl文件。

  • 结果:本地(Windows):a.xsl,b.xsl
  • 结果:服务器(Linux):_ function.xsl

2 个答案:

答案 0 :(得分:1)

* 已编辑(再次)*

我的坏,glob可能没有正则表达式作为模式匹配 这将无效:(?<![^/])[a-zA-Z0-9][^/]*\.xsl$
(只是匹配filename.xsl,其前面带有/或字符串的开头。)

但是,为了获得更多控制,请使用glob'*。*'或更广泛的东西,然后使用上面的正则表达式过滤glob生成的列表。这是一个额外的步骤,但可能会在OS的

中得到统一的结果

答案 1 :(得分:0)

你正在否定班级比赛,试试:

$files = glob($xsl_dir_path . "/[a-zA-Z0-9]*.xsl");
$files = array_map('basename', $files);