Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 抓取奇怪安全网页的内容_Php - Fatal编程技术网

Php 抓取奇怪安全网页的内容

Php 抓取奇怪安全网页的内容,php,Php,我试着从网页上读分数表。为了为我们的团队创建一些统计数据,我想自动将结果保存在我自己的数据库中。例如 我试图通过PHP curl、file、file_get_contents等中的几个选项来获取页面内容,但我总是出现一种奇怪的行为。在浏览器中查看时,实际分数将显示在容器中。但是当我通过PHP获取页面时,容器总是空的 我的第一个想法是通过JS重新加载内容。但是我找不到任何JS呼叫!Firebug也没有跟踪此类活动。CSS属性内容或其他任何东西也没有用处 有人能告诉我那里发生了什么事吗?我如何通过P

我试着从网页上读分数表。为了为我们的团队创建一些统计数据,我想自动将结果保存在我自己的数据库中。例如

我试图通过PHP curl、file、file_get_contents等中的几个选项来获取页面内容,但我总是出现一种奇怪的行为。在浏览器中查看时,实际分数将显示在容器中。但是当我通过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进行此操作,仍然会得到不完整的页面。

不确定此问题是否是最新的。我可以通过以下方式正常获取内容:

echo file_get_contents('http://fvbw.sm-u.de/index.php?seite=game&game=568');

通过使用浏览器的开发工具,确保单个HTTP请求返回所需的内容。然后使用curl头、内容和所有内容编写与HTTP请求完全相同的代码。您可以向我们展示设置curl参数的php代码吗?是的,这实际上适用于上面的页面。此外,使用流上下文甚至可以让我传递cookies来访问受密码保护的页面。