Проблема с регулярным выражением PHP

112
24 июля 2019, 16:30

Имеем строку к примеру:

Описание работы 4
[gallery ids="781,780"]

Отсюда нужно достать IDшники

Я пытаюсь получить их c помощью следующего выражения:

$ids = preg_replace('@.*\[gallery ids="([0-9,]+?)"]@m', '$1', $post->post_content);

В моем понимании должно получиться 781,780, но что-то пошло не так... Я понимаю проблема в переносах строки, но флаг m я использую. В общем у кого есть версии, что не так? :)

Answer 1

Если я правильно понял, то Вам нужно так (если только один ИД):

preg_match('/\[gallery ids="([^"]+)"\]/', $input_line, $output_array);

В $output_array[1] будет 781,780 или если несколько

preg_match_all('/\[gallery ids="([^"]+)"\]/', $input_lines, $output_array);

то в $output_array[1] будут все ИД

preg_replace - он заменяет в тексте по регулярному выражению, т.е. делает совсем другое

READ ALSO
как передать значение php файлам

как передать значение php файлам

Привет всем друзья я новичек в PHPу меня такая проблема нужно войти в сайт с этим проблем нет вроде проверяю вхожу но другие страницы не запоминают...

153
Блокировка приложения через файл hosts

Блокировка приложения через файл hosts

Необходимо сделать так, чтоб приложение танки (https://worldoftanksru/) не работало, и переустановка не помогла

119
Почему возникает segmentation fault?

Почему возникает segmentation fault?

Прохожу данное задание в курсе на Степике: https://stepikorg/lesson/41560/step/4?discussion=821732&unit=20013

144