如何从HTML标记中删除数据

6 html php regex

说我有这样的数据:

<option value="abc" >Test - 123</option>
<option value="def" >Test - 456</option>
<option value="ghi" >Test - 789</option>
Run Code Online (Sandbox Code Playgroud)

使用PHP,我将如何对HTML标记进行排序,从选项值中返回所有文本.例如,根据上面的代码,我想返回'Test - 123','Test - 456','Test - 789'.

谢谢您的帮助!

更新: 所以我更清楚 - 我正在使用filegetcontents()从网站获取html.出于我的目的,我希望能够对html进行排序,找到选项值并输出它们.在这种情况下,返回'测试 - 123','测试 - 456'等.

Gus*_*uss 0

如果我们正在做正则表达式的东西,我喜欢这种类似 perl 的语法:

$test = "<option value=\"abc\" >Test - 123</option>\n" .
    "<option value=\"abc\" >Test - 456</option>\n" .
    "<option value=\"abc\" >Test - 789</option>\n"; 

for ($offset=0; preg_match("/<option[^>]*>([^<]+)/",$test, $matches, 
                        PREG_OFFSET_CAPTURE, $offset); $offset=$matches[1][1])
   print($matches[1][0] . "\n");'
Run Code Online (Sandbox Code Playgroud)

  • 选项元素的值属性定义为 CDATA。如果我没有记错的话,在 html 4.01 中允许 &lt;option value="&gt;abc " (validator.w3.org 同意)。然后您的代码将打印“abc”&gt;Test - 123'。 (4认同)