到目前为止,我只*
工作,但,是有什么样向前看符号,群体?glob模式能处理什么样的特殊字符?
我想获得的所有*.php
除了controller.php
。
我在这glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . '*.php')
呼吁改变,排除controller.php
?
或者我应该避免glob
和其他代替的东西的工作?
到目前为止,我只*
工作,但,是有什么样向前看符号,群体?glob模式能处理什么样的特殊字符?
我想获得的所有*.php
除了controller.php
。
我在这glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . '*.php')
呼吁改变,排除controller.php
?
或者我应该避免glob
和其他代替的东西的工作?
PHP水珠()使用由所述的libc水珠()函数,其类似于由普通壳使用的规则使用的规则。所以你可以使用的模式是相当有限的。
水珠()返回所有匹配的给定模式的路径的阵列。过滤controller.php结果数组是一种解决方案。
按http://www.manpagez.com/man/3/glob/:The glob() function is a pathname generator that implements the rules for file name pattern matching used by the shell.
它是一个单一的过滤器,无异常(PHP幕后的3210后端)。如果你想要* .php,你会得到* .php。
尝试此,
<?php
$availableFiles = glob("*.txt");
foreach ($availableFiles as $key => $filename) {
if($filename == "controller.php"){
unset($availableFiles[$key]);
}
}
echo "<pre>"; print_r($availableFiles);
?>
['glob'](http://php.net/glob)联合机['scandir'](http://php.net/scandir)与['的fnmatch '](http://php.net/fnmatch)。如果您需要更复杂的规则,请将['scandir'](http://php.net/scandir)与['preg_grep'](http://php.net/preg_grep)结合使用。或者使用['RecursiveDirectoryIterator'](http://php.net/RecursiveDirectoryIterator)和['RegexIterator'](http://php.net/RegexIterator) – mario 2012-01-04 13:45:20