假设我想从这里从表格中提取某个数字/文字:http://www.fifa.com/associations/association=chn/ranking/gender=m/index.html
我希望在 FIFA排名位置下的右表td
上获得第一个数字。那将是 88 。经检查,为<td class="c">88</td>
。
我如何使用PHP从所述网页中提取信息?
编辑:我被告知JQuery / JavaScript是为了这个...更适合
答案 0 :(得分:1)
这可能更漂亮,但它会像:
<?php
$page = file_get_contents("http://www.fifa.com/associations/association=chn/ranking/gender=m/index.html");
preg_match('/<td class="c">[0-9]*</td>/',$page,$matches);
foreach($matches as $match){
echo str_replace(array( "/<td class=\"c\">", "</td>"), "", $match);
}
?>
我之前从未做过这样的事情,所以它可能无法正常工作。
如果你可以在页面加载后运行你的魔法,你可以使用JavaScript / JQuery
<script type='text/javascript'>
var arr = [];
jQuery('table td.c').each(
arr[] = jQuery(this).html();
);
return arr;
</script>
另外,抱歉删除我的评论。你没有具体说明需要做什么,所以我最初虽然jQuery更适合你的需求,但后来我想“也许你想在加载HTML页面之前获取页面内容”。
答案 1 :(得分:0)
尝试http://simplehtmldom.sourceforge.net/,
$html = file_get_html('http://www.google.com/');
echo $html->find('div.rankings', 0)->find('table', 0)->find('tr',0)->find('td.c',0)->plaintext;
这是未经测试的,只是查看来源。我相信你可以更快地瞄准它。
事实上,
echo $html->find('div.rankings', 0)->find('td.c',0)->plaintext;
应该有用。
答案 2 :(得分:0)
使用DOMDocument
,它应该预先加载PHP安装:
$dom = new DOMDocument();
$dom->loadHTML(file_get_contents("http://www.example.com/file.html"));
$xpath = new DOMXPath($dom);
$cell = $xpath->query("//td[@class='c']")->item(0);
if( $cell) {
$number = intval(trim($cell->textContent));
// do stuff
}