PHP file_get_contents()与变量中的URL混淆

时间:2015-10-19 13:31:18

标签: php variables file-get-contents

这是我希望获得最佳指导的第一个问题。

我试图使用file_get_contents()抓取网页内容。 在很多场合它运作良好,但有一件事让我发疯。

我将长链接分成三个部分,并将其与下面的代码一起重新组合。该链接是一个分页链接和" 3"负责指明页面,所以在这个特定的链接中我想看第3页。

$combinedlink = $firstpart."3".$secondpart."3".$thirdpart."1445256372";
$input = file_get_contents($combinedlink);

当我现在回显$ input时,它向我显示第1页而不是3.当我回显$ combinedlink并按照它时,它将我带到正确的页面。现在令人震惊的部分:当我复制echo $ combinedlink的输出时;并插入如下:

$input = file_get_contents("http://www.ReallyLongLink.de/EvenMoreStuff");

它正常工作并将我带到第3页。但该变量包含完全正确的内容,但它仅在我对链接进行硬编码时才起作用。 Var_dump还会显示String(178),然后显示引号中的字符串。

1 个答案:

答案 0 :(得分:0)

您尝试抓取的网站可能正在使用除网址之外的其他一些分页方式,例如Cookie /会话。这可以解释为什么链接在您的浏览器中有效但在脚本中无效。

要跟踪网站发送的Cookie,您可能需要尝试使用库(例如Guzzle)来获取网页。

<强>已更新

$input = file_get_contents(html_entity_decode($combinedlink));