1

私は好きな文字列を持っています

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

%NAME配列を取得するために、スキームでプレースホルダーを検出するにはどうすればよいですか?

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

最終的には?

任意の文字列のワイルドカードスキームに続くすべてのワイルドカードを認識する必要があります。したがって、関数も変換する必要があります

'%address (%name)'

array('address', 'name')

ワイルドカードスキームは固定されていないため、より適切な解決策がある場合は、ワイルドカードスキームを変更できます。をいじりましsscanf()たが、入力文字列の形式が異なるため、より柔軟なものが必要であり、ニーズに合いませんでした。

4

1 に答える 1

3

これは仕事をします:

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

Outut:

Array
(
    [0] => name
    [1] => postcode
    [2] => email
)
于 2010-12-16T09:47:30.717 に答える