这不像"重复"它解释了regexp的替代方案,但并没有解释这个问题的解决方案。
我正在尝试使用preg_match_all
来解析已删除的页面(http://www.sportsbookreview.com/betting-odds/)。我在两个网站(http://www.phpliveregex.com/和functions-online.com/preg_match_all.html)上测试了我的正则表达式/>([A-Z]+) - /
,它在两种情况下都有效。我还将我正在解析的片段直接粘贴到我的代码中。在所有这些情况下,它都有效,但是当我在实时数据上运行它时,它不会返回任何结果。
我唯一的理论是,当我剪切并粘贴到实时测试网站时,网站中有一个隐藏的字符无法复制。
完整代码如下。谢谢你的帮助。
<?php
function curl($url) {
$curlAgent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $curlAgent);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$strUrl = 'http://www.sportsbookreview.com/betting-odds/';
$data = curl($strUrl);
$strGames = explode('@id',$data);
echo "<br>Number of games on page: ".count($strGames)."<br>";
for ($i = 1; $i < count($strGames); $i++) {
// echo $strGames[$i];
$clean = preg_replace('/[^\PC\s]/u', '', $strGames[$i]);
$error = preg_match_all("~>([A-Z]+) - ~m", $clean, $strTeams);
var_dump($strTeams);
}
?>