Разобрать строку с заполнителями в массив с PHP - PullRequest
1 голос
/ 16 декабря 2010

У меня есть строка, которая похожа на

$input = '%name (%postcode) <%email>';

Как я могу обнаружить заполнители со схемой %NAME, чтобы в конце я получил массив

$wildcards = array('name', 'postcode', 'email');

?

Он должен распознавать любые символы подстановки, следующие схеме подстановки в любой строке.Таким образом, функция должна также преобразовывать

'%address (%name)'

в

array('address', 'name')

Схема подстановочных знаков не является фиксированной, поэтому, если у вас есть лучшее решение, его можно изменить.Я возился с sscanf(), но, поскольку формат входной строки меняется, мне нужно что-то более гибкое, и оно не отвечало моим потребностям.

1 Ответ

3 голосов
/ 16 декабря 2010

Это сделает работу:

$input = '%name (%postcode) <%email>';
preg_match_all('/%(\w+)/', $input, $m);
$wildcards = $m[1];
print_r($wildcards);

Outut:

Array
(
    [0] => name
    [1] => postcode
    [2] => email
)
...