问题是,点击标题为">Alistar-你能挤牛奶吗?"的指南会给我一个错误。
但如果我点击页面上的任何其他内容,它都非常好。有没有办法,使用cURL可以点击该链接?#
编辑:删除内容以避免抄袭风险。
它不起作用的简单原因是页面上的所有其他链接都是绝对URL,但您询问的链接是相对URL。
这意味着工作的链接从域名开始,所以http://www.solomid.net/...而不起作用的链接只是以/开头,这意味着web浏览器只是使用请求页面中的域。
由于您正在获取页面的内容并将其显示在不同的域上,因此该链接不起作用。
所以下一个问题是如何让它发挥作用?
第一步是修复代码中的一个"bug"。行curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
应该有1
或true
作为第三个参数,而不是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内容,所有链接都应该可以工作。