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

php中文网
发布: 2016-06-23 13:51:24
原创
1215人浏览过

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

有道翻译AI助手
有道翻译AI助手

有道翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语、荷兰语、泰语全文翻译、网页翻译、文档翻译、PDF翻

有道翻译AI助手 63
查看详情 有道翻译AI助手

回复讨论(解决方案)

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
其实也很简单:找到回复的代码就可以了

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号