php - 检测 URL 重定向路径 php
问题描述
我想获得 url 的完整重定向路径。
假设 source.com 在多次重定向后重定向到destination.com,如下所示: http://www.source.com/ -> http://www.b.com/ -> http://www.c.com / -> http://www.destination.com/
如何获取所有重定向的 URL?
使用下面的代码我只得到http://www.destination.com/如何检测完整的 url 重定向链?
<?php
$url='windows.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow the redirects
curl_setopt($ch, CURLOPT_HEADER, false); // no needs to pass the headers to the data stream
curl_setopt($ch, CURLOPT_NOBODY, true); // get the resource without a body
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // accept any server certificate
curl_exec($ch);
// get the last used URL
$lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
echo $lastUrl;
?>
此代码还有另一个问题,它无法检测 youtube 重定向的重定向 url。测试网址:https://www.youtube.com/redirect?redir_token=QUFFLUhqbkVxUFZUME9NbWF4RThxdFpGV3pmTTJEdFVWQXxBQ3Jtc0tubGJqU016TzJ6WnlfeUItX0ZmOUItUE1jRlZoZXhxMzNpQllpM0NLSk4ycnBLMGNidTFsX3N6WkU2X3RsUTRZb1lXQVp5SEZjbnU3eDFuZS1VU3dhdzg2QW9ZMTl1azFCZFZHcHRLdFF3dTM1MlRWdw%3D%3D&event=video_description&v=KEa2XWRGf_4&q=https%3A%2F%2Fwww.facebook.com%2Fabhiandniyu
我的问题是如何为所有类型的重定向请求检测完整的 url 重定向链。
解决方案
你可能错过了:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
将它添加到您的 CURL 配置中,然后它应该可以工作。
推荐阅读
- javascript - Android Webview 桌面通知支持
- c# - Object Reference Not Set to an Instance - Unity2D
- hyperledger-fabric - Hyperledger Fabric 和 Hyperledger Iroha 的区别?
- apache - Apache 本地虚拟主机已列出但不起作用
- reactjs - 无法在返回 jsx 中访问 Vue 实例
- serialization - 从 MFC 对话框保存文件
- python - Scrapy 产生深度为 2 的请求
- java - 未选中将 java.io.Serializable 强制转换为 java.util.ArrayList
- java - Tomcat 无法安装错误:Service was not (uninstalled)
- python - 从css节点scrapy中提取文本