CURL 获取不到重定向URL
使用浏览器可以看到
location:http://www.amazon.com/dp/B018UQ5AMS?_encoding=UTF8&SubscriptionId=AKIAJWXT2MCY6ZQDW7VQ&camp=2025&creative
=386001&creativeASIN=B018UQ5AMS&linkCode=sp1&showDetailTechData=1&tag=ASSOCIATETAG#technical-data
而curl获取到的链接 却任然还是原来的链接
代码:
$url_temp = "http://www.amazon.com/PurSteam-Steamer-Commercial-Fast-Heat-Aluminum/dp/tech-data/B00MG2OOH%3FSubscriptionId%3DAKIAJWXT2MCY6ZQDW7VQ%26tag%3DASSOCIATETAG%26linkCode%3Dsp1%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB00MG2OOHK";
$url = get_redirect_url($url_temp);
function get_redirect_url($url) {
$redirect_url = false;
$ch = curl_init($url);
$referer = "http://www.amazon.com/";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $referer); //设置referer
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 1); //不返回请求体内容
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //允许请求的链接跳转
$cookie_file = dirname(__FILE__) . '/includes/cookie.txt';
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); // 设置从$cookie所指文件中读取cookie信息以发送
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); // 设置将返回的cookie保存到$cookie所指文件
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept:*/*',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Connection: Keep-Alive'));
$content = curl_exec($ch);
if (!curl_errno($ch)) {
$redirect_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); //获取最终请求的url地址
}
return $redirect_url;
}
相关阅读:
一个javascript prototype继承问题
untu16.04 安装问题
对一个点击事件启动了一个定时器,在点击该元素之后需要同时绑定另一个元素点击取消该定时器可以实现吗?
java字符串解码处理
react操作dom的方法?
ionic项目中,html页面使用video标签,为什么src加了个变量来传递值 就报错了。。。
为什么这段代码不能输出
React 如何在window的某个事件发生时改变某个组件的state?
Mysql开启远程登陆后,本地无法正常登陆
发送验证码邮件有什么好的解决方案?
多版本php共存导致的问题
这个bootstrap的模板中,它是怎么控制这个图标的替换或者旋转的?
react的优点是什么呀
android studio报这个错误错怎么解决?
在iOS里@property一个block的时候,我们应该使用strong还是copy呢?
Java使用百度API store返回JSON数据为unicode编码,怎么转化为中文?
react两个组件需要渲染到同一个div中怎么做啊?
C# MongoDB 多条件动态组合查询
多用户同时请求一个PHP文件有可能得到相同的返回值吗?
js闭包在循环语句中的一个问题