如何读取文件的 php param 版本?

发布于 2024-11-03 14:09:42 字数 147 浏览 3 评论 0原文

有没有办法(php函数)从文件中获取版本1.0.0.0?

/**
* @author softplaxa
* @copyright 2011 Company
* @version 1.0.0.0
*/

提前致谢!

is there a way (a php function) to get the version 1.0.0.0 from a file?

/**
* @author softplaxa
* @copyright 2011 Company
* @version 1.0.0.0
*/

thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁月染过的梦 2024-11-10 14:09:42

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

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

B. 您可以使用 grep 作为系统调用

No, there is not a native php function that will extract the version 1.0.0.0 you listed, from a file. However, you can write one:

A. you can parse the file line by line and use preg_match()

B. you can used grep as a system call

过气美图社 2024-11-10 14:09:42
$string = file_get_contents("/the/php/file.php");
preg_match("/\*\s+@version\s+([0-9.]+)/mis", $matches, $string);
var_dump($matches[1]);

您可能可以编写更有效的方法,但这可以完成工作。

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

You can probably write something way more efficient, but this gets the job done.

醉生梦死 2024-11-10 14:09:42

下面是一个使用 fgets 的经过测试的函数,改编自 Drupal Libraries API 模块

/**
 * 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;
}

Here's a tested function that uses fgets, adapted from Drupal Libraries API module:

/**
 * 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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文