我试图根据特定的参数来确定一个文件。首先,我递归地遍历一个目录结构,如下所示:
请注意字符串末尾的控制台游戏类型。在此之后,我们有以下几点:
如果您在第二节中注意到,有一个文件具有p,另一个文件具有r。
我的最终目标是确定哪些文件是p*,哪些文件是r*,所以我的正则表达式我想成为以下内容(伪代码)
/console/p*/
或
/console/r*/
总之,我需要遍历文件,并在函数结束时知道文件名和文件类型(p或r),而不关心控制台类型。谢谢你的帮助
发布于 2009-11-10 16:31:09
喜欢
preg_match('~/([pr])[^/]+$~', $file, $m);
if($m[1] == 'p') something
if($m[1] == 'r') something else//编辑:虽然这直接回答了你的问题,但这并不是最有效的方法。根据您的需要,最好像其他人建议的那样使用glob(),或者glob() + preg_grep(),或者更好的是使用数据库而不是文件。你能告诉我们更多关于努力实现什么的信息吗?
发布于 2009-11-10 16:43:10
PHP函数将遍历匹配满足给定条件的所有文件的目录。
$files = array();
foreach(glob("C:/Users/programmer/Downloads/reviews/*/p*.html") as $filename) {
$files['p'][] = $filename;
}
foreach(glob("C:/Users/programmer/Downloads/reviews/*/r*.html") as $filename) {
$files['r'][] = $filename;
}这将给您一个如下所示的数组:
array (
p => array (
0 => p123.htm
1 => p456.htm
)
r => array (
0 => r123.htm
1 => r456.htm
)
)发布于 2009-11-10 16:32:08
假设您只想获得文件列表,通过文件名的第一个字母来区分:
遍历目录树,将文件名放入像$filename这样的变量中。
$files[$filename][] = $filename;
https://stackoverflow.com/questions/1709244
复制相似问题