1

我正在尝试从网页中读取成绩单。为了为我们的团队创建一些统计数据,我想将结果自动保存在我自己的数据库中。例如http://fvbw.sm-u.de/index.php?seite=game&game=568

我试图通过 PHP 中的几个选项(curl、file、file_get_contents 等)获取页面的内容,但我总是想出一个奇怪的行为。<div id="inhalt"></div>在浏览器中查看时,实际分数会显示在容器中。但是当我通过 PHP 获取页面时,容器总是空的。

我的第一个想法是内容是通过 JS 重新加载的。但我找不到任何 JS 调用!Firebug 也没有跟踪此类活动。也没有使用 CSS 属性内容或其他任何东西。

有人可以告诉我那里发生了什么吗?以及我如何能够通过 PHP 获取该页面的内容?

更新(2013-03-27 12:05):

这是我的代码,它使用与 Firefox 的请求相同的标头。这将返回相同的不完整结果。

$curl = curl_init();
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3";
$header[] = "Accept-Encoding: deflate";
$header[] = "Referer: http://fvbw.sm-u.de/index.php?seite=table&table=15";
$header[] = "Connection: keep-alive";
$header[] = "Cache-Control: max-age=0";
$header[] = "Host: fvbw.sm-u.de";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data = curl_exe($curl);

还有一件奇怪的事情正在发生。使用 HttpRequester(Firefox 插件)时,我只需输入 url 并执行请求,它就会得到正确的结果。原始请求如下所示

GET http://fvbw.sm-u.de/index.php?seite=game&game=571

没有标题,什么都没有。如果我使用 curl 执行此操作,我仍然会得到不完整的页面。

4

1 回答 1

0

不确定这个问题是否是最新的。我可以使用以下方法正常获取内容:

echo file_get_contents('http://fvbw.sm-u.de/index.php?seite=game&game=568');
于 2013-07-19T23:34:58.047 回答