我有以下代码来创建像
这样的小doxygenpublic function parserAction () {
$code = file_get_contents('/www/htdocs/rumpho/application/controllers/parserStr.php');
preg_match_all ( '/(private|public)?\s*function\s*(.*?)\s*\((.*?)\)\s*{(?:\n|\t|$)*(?:\/\*\*((?:\n|.|\t)*?)\*\/)?/msi', $code, $matches );
var_dump( $matches );
die;
}
当parserStr.php的行结尾使用unix进行编码时,它会起作用,但如果使用Windows或MacOS9对行结尾进行编码,则它不起作用。
想法?
THX
答案 0 :(得分:2)
您想要的特殊字符\R
与\n
或\r
或\r\n
匹配。然后你的正则表达式成为:
preg_match_all ( '/(private|public)?\s*function\s*(.*?)\s*\((.*?)\)\s*{(?:\R|\t|$)*(?:\/\*\*((?:\R|.|\t)*?)\*\/)?/msi', $code, $matches );
// here __^^ and __^^