1

$Content 包含 HTML 文档

   $contents = curl_exec ($ch)  

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

 <span class="Menu1">Artur €2000</span>

它重复了好几次,所以我想将它保存到数组中

我尝试这样做:

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

但我有一个错误

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

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

已解决:该错误是由于 CURLed 网站上的错误 HTML 造成的:

  <span class="Menu1">Content</tr>

代替:

 <span class="Menu1">Content</tr>

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

4

2 回答 2

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
        )

)
*/
于 2012-05-31T11:28:00.257 回答
0

你应该|在你的正则表达式的开头和结尾加上这个符号“”:

preg_match_all("|<span class=\"Menu1\">(.*?)</span>|U",$contents,$wynik2);
于 2012-05-31T11:35:44.760 回答