$ Content包含HTML文档
$contents = curl_exec ($ch)
我需要从以下网址获取内容:
<span class="Menu1">Artur €2000</span>
它重复了几次,所以我想把它保存到Array
我试着这样做:
preg_match_all('<span class=\"Menu1\">(.*?)</span>@si',$contents,$wynik2);
但我有错误
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '('
已解决:由于CURLed网站上的错误HTML错误导致错误:
<span class="Menu1">Content</tr>
而不是:
<span class="Menu1">Content</tr>
我没想到有人会写错HTML。谢谢你们的帮助!
答案 0 :(得分: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
)
)
*/
答案 1 :(得分:0)
您应该在正则表达式的开头和结尾添加“|
”标记:
preg_match_all("|<span class=\"Menu1\">(.*?)</span>|U",$contents,$wynik2);