当前位置:Gxlcms > PHP教程 > 有没有办法获得file_get_contents返回页面的url

有没有办法获得file_get_contents返回页面的url

时间:2021-07-01 10:21:17 帮助过:40人阅读

用file_get_contents带cookie访问某远程页面,但是该页面跳转到另一页面,现在问题是能否获得跳转后页面的url?我知道用get_headers是可以获得cookie等头信息的,但是如何获得url呢?


回复讨论(解决方案)

get_headers 也能获得跳转的URL吧

file_get_contents 会根据 http 头的指示自动跳转到新的目标 url
如果目标 url 有跳转,则在 get_headers 的结果中有 Location 项。
且 get_headers 也会跟踪到最终目标,于是最后的 Location 项的值就是你要的了

$a = get_headers($url, 1);if(isset($a['Location'])) {  $url = is_array($a['Location']) ? array_pop($a['Location']) : $a['Location'];}

你都知道原始链接,直接在浏览器打开,不就知道它跳转到哪个链接了嘛?

file_get_contents 会根据 http 头的指示自动跳转到新的目标 url
如果目标 url 有跳转,则在 get_headers 的结果中有 Location 项。
且 get_headers 也会跟踪到最终目标,于是最后的 Location 项的值就是你要的了

$a = get_headers($url, 1);if(isset($a['Location'])) {  $url = is_array($a['Location']) ? array_pop($a['Location']) : $a['Location'];}



可是头信息里没有location项啊,这是何故?其实我做的是针对discuz的自动发帖,发完贴之后就跳转到帖子内容页了,现在我想取得新帖的id,url里面有这个。

他只有一节 200,所以并没有发生 http 跳转
而是在表单接受页直接 include 了帖子页
你只能分析页面内容,找出帖子的 id
其实也很简单:找到回复的代码就可以了

人气教程排行