Я хотел бы разобрать короткий код в массив через «preg_split».preg_split атрибуты shortcode в массив
Это пример шорткод:
[contactform id="8411" label="This is \" first label" label2='This is second \' label']
, и это должно быть результатом массива:
Array ( [id] => 8411 [label] => This is \" first label [label2] => This is second \' label )
У меня есть это регулярное выражение:
$atts_arr = preg_split('~\s+(?=(?:[^\'"]*[\'"][^\'"]*[\'"])*[^\'"]*$)~', trim($shortcode, '[]'));
К сожалению, это работает только, если есть без вылета котировок \'
или \"
.
Thx заранее!
'preg_split' не путь, используйте' preg_match_all' и '\ G' якорь, если вам нужно, чтобы обеспечить примыкание результатов. –
Я не знаю, дал ли Казимир и Ипполит правильный ответ. Но это очень сложная проблема. Я решил это, используя формат json для параметров в аналогичной ситуации. – splash58