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));
这是我的第一个问题,希望得到最好的指导。
我正在尝试使用 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));