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

PHP file_get_contents() confusion with URL in variable

这是我的第一个问题,希望得到最好的指导。

我正在尝试使用 file_get_contents() 抓取网页内容。 在很多情况下它工作正常,但有一件事让我发疯。

我将一个很长的 link 分成三个部分,然后将其与下面的代码一起放回去。 link 是一个分页 link,“3”负责指示页面,所以在这个特定的 link 中,我想查看第 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 页。但是该变量包含完全正确的内容,但它仅在我对 link 进行硬编码时才有效。 Var_dump 还向我展示了 String(178),然后是引号中的字符串。

您尝试抓取的网站可能使用了 URL 之外的其他分页方式,例如 cookie/会话。这或许可以解释为什么 link 在您的浏览器中有效,但在您的脚本中无效。

要跟踪网站发送的 cookie,您可能需要尝试使用 Guzzle 等库来获取页面。

已更新

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