如何读取php参数版本的文件?

如何读取php参数版本的文件?,php,version,param,Php,Version,Param,有没有一种方法(php函数)可以从文件中获取版本1.0.0.0 /** * @author softplaxa * @copyright 2011 Company * @version 1.0.0.0 */ 提前谢谢 $string = file_get_contents("/the/php/file.php"); preg_match("/\*\s+@version\s+([0-9.]+)/mis", $matches, $string); var_dump($matches[1]); 您

有没有一种方法(php函数)可以从文件中获取版本1.0.0.0

/**
* @author softplaxa
* @copyright 2011 Company
* @version 1.0.0.0
*/
提前谢谢

$string = file_get_contents("/the/php/file.php");
preg_match("/\*\s+@version\s+([0-9.]+)/mis", $matches, $string);
var_dump($matches[1]);

您可能可以以更高效的方式编写一些内容,但这样就完成了任务。

不,没有一个本机php函数可以从文件中提取您列出的1.0.0.0版本。但是,您可以编写一个:

A.您可以逐行解析文件,并使用preg_match()


B.您可以将grep用作系统调用

这是一个使用fgets的测试函数,改编自:


\/*
在OPs示例中不起作用。我将避免尝试将注释块语法全部匹配在一起。我想检查
@version
就足够了。是的,更新了正则表达式。如果你看到*/你做得太过分了,如果(strstrstr('@version',$line))做正则表达式,我可能会做一个fopen和几个fgets。加载效率更高。
/**
 * Returns param version of a file, or false if no version detected.
 * @param $path
 *  The path of the file to check.
 * @param $pattern
 *  A string containing a regular expression (PCRE) to match the
 *  file version. For example: '@version\s+([0-9a-zA-Z\.-]+)@'.
 */
function timeago_get_version($path, $pattern = '@version\s+([0-9a-zA-Z\.-]+)@') {
  $version = false;
  $file = fopen($path, 'r');
  if ($file) {
      while ($line = fgets($file)) {
        if (preg_match($pattern, $line, $matches)) {
          $version = $matches[1];
          break;
        }
      }
      fclose($file);
  }
  return $version;
}