使用正则表达式在选择框中提取选项值和文本

时间:2012-01-16 09:50:56

标签: php regex

  

可能重复:
  How to parse and process HTML with PHP?

我有一些存储在数据库中的HTML选择框的代码,例如: G:

<select id="appearance_body_style" class="cls_selectbox"> 
 <option value="">-- select --</option> 
 <option value="underweight">untergewichtig</option>
 <option value="slim">schlank</option>
 <option value="athletic">athletisch</option>
 <option value="average">durchschnittlich</option> 
 <option value="full_figured">mollig</option> 
 <option value="overweight">übergewichtig</option> 
</select>

我需要两个正则表达式:

  • 一个从值属性中获取字符串。
  • 一个获取选项标签之间的字符串。

所有东西都需要循环才能将这两个字符串行提取为行。

2 个答案:

答案 0 :(得分:0)

我认为你会有更多运气这样的事情: http://simplehtmldom.sourceforge.net/

答案 1 :(得分:0)

试试这个:

$match = array();
preg_match_all( '~<option value="([^"]+)">([^<>]+)</option>~', $html, $match, PREG_SET_ORDER);
print_r( $match);

另见preg_match_all

的php文档