как читать php param версию файла? - PullRequest
0 голосов
/ 28 апреля 2011

есть ли способ (функция php) получить версию 1.0.0.0 из файла?

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

спасибо заранее!

Ответы [ 3 ]

1 голос
/ 28 апреля 2011

Нет, нет встроенной функции php, которая будет извлекать версию 1.0.0.0, которую вы указали, из файла. Тем не менее, вы можете написать один:

A. Вы можете анализировать файл построчно и использовать preg_match ()

B. Вы можете использовать grep в качестве системного вызова

0 голосов
/ 19 марта 2012

Вот протестированная функция, использующая fgets, адаптированная из Модуль API библиотек Drupal :

/**
 * 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;
}
0 голосов
/ 28 апреля 2011
$string = file_get_contents("/the/php/file.php");
preg_match("/\*\s+@version\s+([0-9.]+)/mis", $matches, $string);
var_dump($matches[1]);

Возможно, вы можете написать что-то более эффективное, но это сделает работу.

...