Я строю систему, основанную на тестах, и пользователи могут создавать типы вопросов, вводя что-то похожее на шорткод в текстовой области. План состоит в том, чтобы иметь возможность конвертировать шорткоды в HTML.
Вот пример того, как пользователи могут писать внутри текстовой области:
Вот вопрос
Как тебя зовут? [question type = «text» question-answers = «Майк | Майк | Майкл»]
Мужской или женский? [question type = «radio» question-answers = «Мужской» возможных-ответы = «Мужской | Женский» имя = «секс»]
Сколько машин у вас есть [question type = «checkbox» question-answers = «2» возможных-ответов = «1 | 2 | 3 | 4» name = «cars»]
Пользователи добавляют «шорткоды» одним нажатием кнопки, и им предоставляется возможность добавлять значения к атрибутам, например, вопросы-ответы и т. Д., Что позволяет им писать любой «код».
То, что я хочу сделать, это при отправке (в фоновом режиме) конвертировать все шорткоды в HTML-ввод. Фактическое преобразование не будет проблемой, с чем я сталкиваюсь, так это с обнаружением всех шорткодов.
Я пытался с помощью:
preg_match_all(SOME_REG_EX, $question, $matches);
print_r($matches);
но я не получаю ничего полезного, возможно, из-за того, что мое регулярное выражение неверно, я пробовал различные регулярные выражения, но мне не повезло.
Удалось найти регулярное выражение, которое мне было нужно, чтобы найти каждое вхождение:
'/\[[^\[]*question[^\]]*\]/'
Который получает все [question OTHER_ATTRIBUTES]
короткий номер
Других решений пока нет …