【发布时间】:2014-10-20 02:27:22
【问题描述】:
请帮我检查这段代码。我认为我写的正则表达式有问题,但我不知道如何解决:
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$content = get_data('http://ibongda.vn/lich-thi-dau-bong-da.hs');
$regex = '/<div id="zone-schedule-group-by-season">(.*)<\/div>/';
preg_match($regex, $content, $matches);
$table = $matches[1];
print_r($table);
【问题讨论】:
-
不要用正则表达式解析html
-
错误不在您的正则表达式中,而在您的设计中。正则表达式不是解析 HTML 的正确工具。我建议查看 HTML 解析器的“汤”系列之一 - 乍一看simplehtmldom.sourceforge.net 看起来是个不错的选择。
-
我尝试了 simpledomhtml,但速度很慢。我的主机有 php 5.3,所以我不能使用最新的 goutte 版本。我不知道其他方式:(
-
一旦输入只是 DOM,使用 DOM 永远不会比 RegExp 慢。