PHP preg_match_all - 如何从HTML获取内容?

Art*_*ary 1 html php regex

$ Content包含HTML文档

   $contents = curl_exec ($ch)  
Run Code Online (Sandbox Code Playgroud)

我需要从以下内容获取内容:

 <span class="Menu1">Artur €2000</span>
Run Code Online (Sandbox Code Playgroud)

它重复了几次,所以我想把它保存到Array中

我试着这样做:

 preg_match_all('<span class=\"Menu1\">(.*?)</span>@si',$contents,$wynik2);
Run Code Online (Sandbox Code Playgroud)

但我有一个错误

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '('

你能帮帮我吗?编辑:$ contents = curl_exec($ ch)

已解决:错误是因为CURLed网站上的错误HTML:

  <span class="Menu1">Content</tr>
Run Code Online (Sandbox Code Playgroud)

代替:

 <span class="Menu1">Content</tr>
Run Code Online (Sandbox Code Playgroud)

我没想到有人会写错HTML.谢谢你们的帮助!

flo*_*ree 6

你忘了第一个分隔符(@):

$contents = '<span class="Menu1">Artur $2000</span> somehtml <span class="Menu1">Mark $1000</span>';
preg_match_all('@<span class="Menu1">(.*?)</span>@si', $contents, $wynik2);

print_r($wynik2);
/*
Array
(
    [0] => Array
        (
            [0] => <span class="Menu1">Artur $2000</span>
            [1] => <span class="Menu1">Mark $1000</span>
        )

    [1] => Array
        (
            [0] => Artur $2000
            [1] => Mark $1000
        )

)
*/
Run Code Online (Sandbox Code Playgroud)