解析 PHP 条评论以获取元变量
Parse PHP comments for get meta variable
我正在使用这个preg_match
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`)
*/
请记住,此功能是 Izumrud 系统的一部分。感谢您的帮助!
从 php 文件中获取内容后,你应该逐行解析它,如果你在行首找到 * 字符,只需使用
str_replace("*", "", $string);
并粘贴特定行。
(在我的 phone 上,不能真正编写代码,但这应该工作得很好)
怎么样:
$file_data = <<<EOD
/*
* Some example: Lorem ipsum
*
*/
EOD;
preg_match( '/^.*?Some example: (.*)$/m', $file_data, $match);
print_r($match);
输出:
Array
(
[0] => * Some example: Lorem ipsum
[1] => Lorem ipsum
)
我正在使用这个preg_match
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`)
*/
请记住,此功能是 Izumrud 系统的一部分。感谢您的帮助!
从 php 文件中获取内容后,你应该逐行解析它,如果你在行首找到 * 字符,只需使用 str_replace("*", "", $string); 并粘贴特定行。
(在我的 phone 上,不能真正编写代码,但这应该工作得很好)
怎么样:
$file_data = <<<EOD
/*
* Some example: Lorem ipsum
*
*/
EOD;
preg_match( '/^.*?Some example: (.*)$/m', $file_data, $match);
print_r($match);
输出:
Array
(
[0] => * Some example: Lorem ipsum
[1] => Lorem ipsum
)