preg_match_all с окончаниями строк windows / macOS9

У меня есть следующий код для создания немного Doxygen, как

public 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.

Идеи?

Спасибо

1

Решение

Специальный символ, который вы хотите \R это соответствует \n или же \r или же \r\n, Вы regex затем становится:

preg_match_all ( '/(private|public)?\s*function\s*(.*?)\s*\((.*?)\)\s*{(?:\R|\t|$)*(?:\/\*\*((?:\R|.|\t)*?)\*\/)?/msi', $code, $matches );
//                                                                 here __^^              and __^^
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]