【问题标题】:how to check if file is php?如何检查文件是否为php?
【发布时间】:2011-02-11 03:52:21
【问题描述】:

我想检查一个文件是否有扩展名 .php。如果它有我包括它。

有人可以帮我检查正则表达式吗?

谢谢!

【问题讨论】:

    标签: php regex


    【解决方案1】:

    通常你不使用正则表达式。

    以下是一种流行的方法:

    $extension=pathinfo($filename, PATHINFO_EXTENSION);
    

    【讨论】:

      【解决方案2】:

      pathinfo 是最简单的解决方案,但您也可以使用fnmatch

      if( fnmatch('*.php', $filename) ) { /* do something */ }
      

      编辑: 就像 @zombat 在 cmets 中指出的那样,如果您追求的是 fast 解决方案,那么以下方法比使用 pathinfofnmatch 更快:

      if( substr($filename, -4) === '.php' ) { /* do something */ }
      

      请记住,pathinfofnmatchsubstr 不同,它会对您提供的路径进行 basename 检查,这在我看来更简洁。

      【讨论】:

      • 关于速度,fnmatch 在用于此目的时会执行 pathinfo 2:1。
      • @zaf 既然你提到了它.. 不,它没有。是什么让我这么想?!哈哈。但是,它仍然比较慢。
      • @Gordon 你需要一记耳光。从现在开始,我将仔细检查您的所有答案和 cmets。看它。 ;)
      • @zaf 是的,请这样做,否则我会继续撒谎,虽然无意中,但仍然:) 最好删除评论。
      • 如果您所做的只是最后检查“.php”,您为什么还要使用需要通配符匹配的东西? if (substr($filename,-4) == '.php') 在速度方面将这两种方法都淘汰了。
      【解决方案3】:
      /\.php$/
      

      但扩展映射并不能确保内容是您所期望的,只是文件以特定方式命名。

      【讨论】:

      • 好点。还有很多其他的文件扩展名表示 PHP 内容:.module、.inc、.test、.install 等。
      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 2023-03-28
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 2013-07-18
      • 1970-01-01
      相关资源
      最近更新 更多