За последние 24 часа нас посетили 55430 программистов и 1795 роботов. Сейчас ищут 819 программистов ...

Регулярка

Тема в разделе "PHP для новичков", создана пользователем Yankovitz, 8 июл 2018.

  1. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Добрый день. Прошу небольшой помощи. Есть некий код:
    Код (Text):
    1. add_shortcode( 'code', 'my_func' );
    2.  
    3. function some_fn() {
    4.    echo 'Hello world';
    5. }
    Необходимо получить все строки, начинающиеся с add_shortcode через регулярное выражение.
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    PHP:
    1. preg_match_all('/(add_shortcode.+)'.PHP_EOL.'/', $str, $matches);
    2. print_r($matches[1]);
    --- Добавлено ---
    Или, если предполагать, что "строка" в вашем понимании - это часть кода ограничивающаяся точкой с запятой:
    PHP:
    1. preg_match_all('/add_shortcode[^;]+;/s', $str, $matches);
    2. print_r($matches[0]);
     
  3. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Спасибо, то что нужно
     
  4. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Прошу прощения, что снова обращаюсь. Подскажите, как извлечь my_func из add_shortcode( 'code', 'my_func' );
    Причем код может выглядеть так:
    Код (Text):
    1. add_shortcode( 'code', 'my_func', 10 );
    Но my_func всегда идет второй.
     
    #4 Yankovitz, 8 июл 2018
    Последнее редактирование: 8 июл 2018
  5. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Yankovitz, тут можно без регулярки:
    PHP:
    1. $str = "add_shortcode( 'code', 'my_func', 10 );";
    2. $parts = explode("'", $str);
    3. echo !empty($parts[3]) ? $parts[3] : 'нет имени функции';
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А что ты с WordPress-ом пытаешься сделать, если не секрет?
     
  7. Yankovitz

    Yankovitz Активный пользователь

    С нами с:
    21 ноя 2014
    Сообщения:
    194
    Симпатии:
    6
    Делаю небольшой плагин для документации