Я использую этот preg_match
Анализировать PHP комментарии для получения мета-переменной
preg_match('/^[ \S\t\/*#@]*'.$regex.': (.*)$/', $file_data, $match
извлекать теги из 8KB заголовков PHP-файлов. Например, если мне нужно получить значение Some example
модуля от
/*
* Some example: Lorem ipsum
*
*/
preg_match
будет выглядеть следующим образом:
preg_match('/^[ \S\t\/*#@]*Some example: (.*)$/', $file_data, $match
и мне нужно, чтобы получить Lorem ipsum
, но мой preg_match
не работает. Пожалуйста, помогите мне!
Полный исходный PHP:
function get_module_data($path, $default_headers = ''){
$module = fopen($path, 'r');
// Pull only the first 4kiB of the file in.
$module_data = fread($module, 4096);
// PHP will close file handle, but we are good citizens.
fclose($module);
// Make sure we catch CR-only line endings.
$module_data = str_replace("\r", "\n", $module_data);
$all_headers = $default_headers;
foreach ($all_headers as $field => $regex) {
if (preg_match('/^.*?' . $regex . ':(.*)$/mi', $module_data, $match) && $match[1]){
$all_headers[$field] = cleanup_comment($match[1]);
} else {
$all_headers[$field] = '';
}
}
return $all_headers;
}
Эта функция ожидать параметры:
/**
* @param string $path path to file.
* @param array $default_headers must contain $key (name of parameter) with $value (Regex part without ":". E.g.
<code>
$default_headers = array(
'AuthorName' => 'Author Name'
);
</code>
for search in file value of `Author Name: Lorem Ipsum` (will be `Lorem Ipsum`)
*/
Пожалуйста, помните, что эта функция является частью системы Изумруд. Спасибо за помощь!
спасибо, но что означает '/ m' в preg_match? –
Я нашел этот модификатор, это многострочный режим, если кто-то этого не знает. –