我正在尝试从此页面获取分数表http://www.skysports.com/football/competitions/bundesliga/table。我这样做与无法从其他页面获取确切值
$bundes = file('http://www.skysports.com/football/competitions/bundesliga/table');
,当我尝试显示数组$ bundes我这个做:
echo '<pre>', print_r($bundes), '</pre>';
代码巫婆我尝试做显示器显示如下:
[1437] =>
[1022] => German Bundesliga 2015/16
# Team Pl W D L F A GD Pts Last 6
1 [1059] => [1060] => Bayern Munich [1061] => [1062] => 9 9 0 0 29 4 25 27 [1072] =>
[1073] =>
[1074] =>
这是表格的第一行。现在我可以显示$ bundes [1060],并且我得到了拜耳慕尼黑的输出,但是如何从$ bundes获得值[1062],值是9,9,0,0,29,4,25和27?我需要在<td></td>
中显示每个这个值当我尝试echo $ bundes [1062]我什么也没有得到。
$doc = new \DOMDocument();
@$doc->loadHTMLFile('http://www.skysports.com/football/competitions/bundesliga/table');
$xpath = new \DOMXPath($doc);
$rows = $xpath->query('//tbody/tr');
$data = [];
foreach ($rows as $i => $row) {
$columns = $xpath->query('td', $row);
foreach ($columns as $column) {
$data[$i][] = trim($column->textContent);
}
}
print_r($data);
它给你:
'file()'将读取输入并将每个换行符分隔的字符串存储到作为结果返回的数组中。你不能指望skysports把新线路放在对你很重要的地方;如果要在不使用适当的数据格式(如JSON)的情况下进行挖掘,则必须对数据进行更智能的分析。 – klaar
不要。它违反了条款 – 2015-10-20 09:21:15