php curl重定向,PHP:cURL并跟踪所有重定向
你有
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
这意味着cURL将遵循重定向并仅返回没有Location头的最终页面.
要手动关注位置:
function getWebPage($url, $redirectcallback = null){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1) Gecko/20061024 BonEcho/2.0");
$html = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code == 301 || $http_code == 302) {
list($httpheader) = explode("\r\n\r\n", $html, 2);
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $httpheader, $matches);
$nurl = trim(array_pop($matches));
$url_parsed = parse_url($nurl);
if (isset($url_parsed)) {
if($redirectcallback){ // callback
$redirectcallback($nurl, $url);
}
$html = getWebPage($nurl, $redirectcallback);
}
}
return $html;
}
function trackAllLocations($newUrl, $currentUrl){
echo $currentUrl.' ---> '.$newUrl."\r\n";
}
getWebPage('some url with redirects', 'trackAllLocations');
php curl重定向,PHP:cURL并跟踪所有重定向相关推荐
- php curl for win7_解决windows7X64环境下开启PHP_Curl wamp curl PHP开启CURL无反应
windows7系统64bit环境下wamp开启curl php开启curl无反应,或者php程序显示Call to undefined function curl_init()错误,在百度和谷歌里搜 ...
- php curl ssr,php curl模拟登陆
$url="url地址"; $post_file="username=xxx&password=xxx"; $cookie_jar = dirname( ...
- curl服务器文件,curl 向远程服务器传输file文件
public function upload(){ //获取上传文件信息,文件名称以自己实际上传文件名称为准 $fileinfo = $_FILE['filename']; //请求参数,依据商户自己 ...
- PHP中使用CURL之php curl详细解析和常见大坑
这篇文章主要介绍了PHP中使用CURL之php curl详细解析和常见大坑 ,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 七夕啦,作为开发,妹子没得撩就"撩"下服务器 ...
- curl报错 curl: option --form: is badly used here
执行curl上传文件 curl --location --request POST 'http://192.168.65.220:19999/upfile/' \ --form '=@"/C ...
- nohup: 忽略输入重定向错误到标准输出端_Linux 重定向与管道
重定向 重定向 > 重定向追加输入 >> 正确错误都会重定向 &> 标准输入 0 标准输出 1> 或 > (简写) 标准错误 2> FD 文件描述符, ...
- lte盲重定向_LTE重选、切换、重定向的区别
[资料名称]:LTE重选.切换.重定向的区别 [资料作者]:A [资料日期]:20150916 [资料语言]:中文 [资料格式]:DOC/DOCX [资料目录和简介]: 这里主要简单阐述了LTE系统的 ...
- windows下使用curl以及常用curl命令
什么是curl命令 curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 如何在window ...
- php curl读取头,php curl 获取请求头与DNS解析
这里是具体的curl请求函数,已将对应的需求作为参数编写 /** * 发起请求并获取返回值 * @param string $url * @param string $method 请求方式 * @p ...
最新文章
- Reboot分享第三期(已结束)
- 802.11的隐藏节点和RTS,CTS机制
- 当亿级流量App开始“玩”,到底在玩什么?
- linux java获取文件创建时间_Linux查看文件的最初创建时间
- java 时间的相关转换操作
- [转]PHP或ASP 中Cookie禁用了,Session还能用吗?
- 常用Linux命令 mount df dd
- 对openflow 1.0协议的扩展
- Redis-03-Redis集群的搭建
- 其实,前面倒腾那么多,只是为了想玩SPRING BOOT
- Git/Github + TortoiseGit 使用教程
- Hive环境搭建及测试
- 内网穿透端口映射工具
- windows系统下itunes的备份路径修改
- 蒟蒻的数据结构乱谈(未完)
- Code3Kingdom - Tech Support
- Django中related_name作用
- STM32F446高性能MCU芯片介绍
- PHP 导出 Excel 换行不显示
- iOS开发-集成阿里云实人认证
热门文章
- SDN控制器之OVN实验三:从OVN虚拟网络访问物理网络
- iOS怎么制作PDF图片和网络抓取图片
- Python——定义一个函数,将列表中的每个值修改为前一个值的两倍(其中,第一个值为0);
- 通过坚果云、KeePassXC、keepass2android实现跨平台的密码管理方案
- stotybord如何添加子视图_bim教程:Revit如何制作管道三维系统图
- 一张图学会Python3
- 融云Android对接视频,Android studio接入融云IM
- 步进电机基础(5.1)-步进电机的驱动与控制-恒压驱动、恒流驱动
- Linux设置一个网卡IP地址,linux下一块网卡设置多个ip地址(示例代码)
- 边框回归(Bounding Box Regression)详解