2012-03-10 19 views
1

私はテンプレートファイル内のタグ名を見つけるためにpreg_matchを使用しています。文字列内に複数の一致がある場合

は、現在、私が持っている最も近いものがこれです:「これはちょうど私のようなid私を返し

<a href="index.php?view=products&cat={db:id}">Test</a>

preg_match('/\{db:(.*)\}/',$haystack,$found);

それは、このような文字列に適しています私は期待しています。私は期待していて、それは私にid}">{db:name、ないidnameを返し

<a href="index.php?view=products&cat={db:id}">{db:name}</a>

:しかし、同様に複数回出現して文字列を使用した場合。

どこが間違っていますか?

答えて

2

あなたは?文字を追加することにより、(.*)非貪欲を行う必要があり、またはそれはまだ一致させることができるように、できるだけ多くの文字を取り上げます。このように:

preg_match('/\{db:(.*?)\}/', $haystack, $found);
+2

はい、私は 'preg_match'の代わりに' preg_match_all'を使用する必要があります。ありがとうございました! – budwiser

関連する問題