PHPのオプションタグの値と内容すべてについて、特定のselectタグをスキャンしたいと思います。このregex(php)を使ってselectタグを解析する
<select>
<option value="donald">duck</option>
<option value="david">moose</option>
</select>
<select id="something"> <!--ignore this one -->
<option value="sdfas">fs</option> <!-- ignore this one -->
...
から、私はこのようなものになるだろうように:
$result['value'][0] == "donald"
$result['content'][1] == "moose"
をそして、そのために私が試した:
<select>(?:[\s]*<option value="(?P<value>[^"]*)">
(?P<content>[^<]*)</option>)*[\s]*</select>
しかし、私は唯一の単一の行(最後の1)を取得次のコードを使用してください:
preg_match_all('%<select>(?:[\s]*<option value="(?P<value>[^"]*)">
(?P<content>[^<]*)</option>)*[\s]*</select>%',
$contents, $result, PREG_SET_ORDER);
私は進めるべきですか?
+1。正規表現はHTMLを解析できません。正規表現を使ってHTMLを解析しないでください。行かないでください。 £200を徴収しないでください。 – bobince
確かに良い解決策です。私は(誤って)彼がただ一つの選択要素を解析すると仮定していました。 –