Вот пример источника $
/** * These functions can be replaced via plugins. If plugins do not redefine these * functions, then these will be used instead. */ if ( !function_exists('wp_set_current_user') ) : /** * Changes the current user by ID or name. * */ function wp_set_current_user($id, $name = '') {
Внимание : у некоторых нет строки function_exists.
Для моей специальной цели я пытаюсь разобрать докблоки с регулярным выражением.
Вот регулярное выражение
$t = preg_match_all("@(/\*\*.*?\*/\nfunction\s.*?\(.*?\))\s{@mis",$source,$m);
Я ожидаю получить:
/** * Changes the current user by ID or name. * */ function wp_set_current_user($id, $name = '') {
но вместо этого он возвращает мне весь пример кода.
Любая помощь будет оценена по достоинству.
Я узнаю, что некоторые люди спрашивают меня о своей цели, но я не думаю, что это важно здесь.
Я использую geany, и я узнаю, что существующий подсказку кода WordPress не является полной.
И анализаторы docblock я обнаружил, что не анализировать имена функций и аргументы функции.
Поэтому я пытаюсь разобрать их самостоятельно.
формат подсказки кода geany
wp_set_current_user|Changes the current user by ID or name.|($id, $name = '')|
Однако, моя точка зрения на этот вопрос заключается в том, как сделать регулярное выражение вторым «/ **» в качестве отправной точки? Прошу прощения за моего бедного английского, который смутил всех вас.