首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于正则表达式中的参数确定文件的PHP

基于正则表达式中的参数确定文件的PHP
EN

Stack Overflow用户
提问于 2009-11-10 16:28:14
回答 4查看 74关注 0票数 0

我试图根据特定的参数来确定一个文件。首先,我递归地遍历一个目录结构,如下所示:

  • C:/User/程序员/下载/评论/XBOX
  • C:/User/程序员/下载/评论/PS3
  • C:/User/程序员/下载/评论/GBA

请注意字符串末尾的控制台游戏类型。在此之后,我们有以下几点:

  • C:/Users/programmer/Downloads/reviews/XBOX/p123.html
  • C:/Users/programmer/Downloads/reviews/XBOX/r123.html

如果您在第二节中注意到,有一个文件具有p,另一个文件具有r。

我的最终目标是确定哪些文件是p*,哪些文件是r*,所以我的正则表达式我想成为以下内容(伪代码)

/console/p*/

/console/r*/

总之,我需要遍历文件,并在函数结束时知道文件名和文件类型(p或r),而不关心控制台类型。谢谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-10 16:31:09

喜欢

代码语言:javascript
复制
 preg_match('~/([pr])[^/]+$~', $file, $m);
 if($m[1] == 'p') something
 if($m[1] == 'r') something else

//编辑:虽然这直接回答了你的问题,但这并不是最有效的方法。根据您的需要,最好像其他人建议的那样使用glob(),或者glob() + preg_grep(),或者更好的是使用数据库而不是文件。你能告诉我们更多关于努力实现什么的信息吗?

票数 0
EN

Stack Overflow用户

发布于 2009-11-10 16:43:10

PHP函数将遍历匹配满足给定条件的所有文件的目录。

代码语言:javascript
复制
$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;
}

这将给您一个如下所示的数组:

代码语言:javascript
复制
array (
    p =>  array (
        0 => p123.htm
        1 => p456.htm
    )

    r => array (
        0 => r123.htm
        1 => r456.htm
    )
)
票数 2
EN

Stack Overflow用户

发布于 2009-11-10 16:32:08

假设您只想获得文件列表,通过文件名的第一个字母来区分:

遍历目录树,将文件名放入像$filename这样的变量中。

$files[$filename][] = $filename;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1709244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档