Я так старался и так далеко, но в итоге это не сработало !!
Я бы хотел добиться следующего:
У меня есть функция preg_replace_callback, где я хочу обратиться к своей функции «словаря».
Я использую свой собственный тег "словарь":
<[general,username]>
<[general,username,1]>
это должно вызвать мою функцию "словарь". Функция с ее аргументами: dictionary($search,$section,$upper=null)
$search = filename
$section = array key
$upper = (int) 1 to 3
Моя функция обратного вызова вызывает функцию со значениями из тегов словаря.
for <[general,username]> I need
- $search = general
- $section = username
- $upper = null
but for <[general,username,1]> I want
- $search = general
- $section = username
- $upper = 1
Я хочу, чтобы мое регулярное выражение всегда соответствовало 2 аргументам (поиск и раздел), но имеет третий необязательный аргумент.
Мое регулярное выражение:
/\<\[([^\[]+)\,([^\[]+)(\,[0-2])?\]\>/
но это не работает правильно. Я получаю следующие результаты:
для <[general, username]> я получаю
[0] => <[general,username]>
[1] => general
[2] => username
для <[general, username, 1]> я получаю
[0] => <[general,username,1]>
[1] => general,username
[2] => 1
но я бы хотел
[0] => <[general,username,1]>
[1] => general
[2] => username
[3] => 1
Что я делаю не так ??