PHP/cURL代码不允许我选择我想要的链接


PHP/cURL code not letting me select the link I want

问题是,点击标题为">Alistar-你能挤牛奶吗?"的指南会给我一个错误。

但如果我点击页面上的任何其他内容,它都非常好。有没有办法,使用cURL可以点击该链接?#

编辑:删除内容以避免抄袭风险。

它不起作用的简单原因是页面上的所有其他链接都是绝对URL,但您询问的链接是相对URL。

这意味着工作的链接从域名开始,所以http://www.solomid.net/...而不起作用的链接只是以/开头,这意味着web浏览器只是使用请求页面中的域。

由于您正在获取页面的内容并将其显示在不同的域上,因此该链接不起作用。

所以下一个问题是如何让它发挥作用?

第一步是修复代码中的一个"bug"。行curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);应该有1true作为第三个参数,而不是0,因为它现在的工作方式是curl_exec($ch)返回true,页面内容直接输出到浏览器。

通过设置curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);,页面内容将从curl_exec返回并存储在$result

那么最简单的解决方法就是添加一行:

$result = str_replace('<head>', '<head><base href="http://www.solomid.net/">', $result);

它将把HTML基本标签插入头部,这样浏览器将使用http://www.solomid.net/而不是浏览器中缺少域的URL的域。然后,当您echo $result;时,您将回显稍微修改过的HTML内容,所有链接都应该可以工作。

相关文章: