0
A
回答
0
让所有重定向站点的列表,并检查对他们的网址的域名。
$redirecters = array("goo.gl", "tinyurl.com", ...);
$domain = parse_url($url, PHP_URL_HOST);
if (in_array($domain, $redirecters)) {
echo "That's a redirect URL!";
}
0
这个代码利用卷曲遵循基于定义的阈值的任意重定向以确定URL缩短:
!defined('THRESHOLD')?define('THRESHOLD',2):null;
$i = 0;
$url = 'goo.gl/Vmnf';
while ($i<THRESHOLD)
{
$ch = curl_init();
// set URL and other appropriate options
$options = array(CURLOPT_URL => $url,
CURLOPT_HEADER => true,
CURLOPT_CRLF => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_FRESH_CONNECT => true,
CURLOPT_TCP_NODELAY => true,
CURLOPT_RETURNTRANSFER => true,
);
curl_setopt_array($ch, $options);
// grab URL and pass it to the browser
$trans = curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
// Processing
preg_match('/^(?P<header>.*?)(?:\r?\n){2}(?P<body>.*)?$/s', $trans, $ptrans);
if(empty($ptrans['header'])) break;
$headers = preg_split('/\r?\n/', $ptrans['header']);
preg_match('/^HTTP\/(?P<http_varsion>.*?)\s(?P<http_code>.*?)\s(?P<http_description>.*)?$/m', $headers[0], $matches);
unset($headers[0]);
if ((int)($matches['http_code']/100) != 3)
{
break;
}
for($j = 1; $j < count($headers); $j++)
{
preg_match('/^(?P<name>.*?):\s+(?P<value>.*)$/',$headers[$j], $header);
$headers[$header['name']] = $header['value'];
unset($headers[$j]);
}
$http = [
'version' => $matches['http_varsion'],
'code' => $matches['http_code'],
'description' => $matches['http_description'],
'header' => $headers,
'body' => $ptrans['body'],
];
if (empty($http['header']['Location']))
break;
$url = $http['header']['Location'];
$i++;
}
echo $i;
相关问题
- 1. 使用javascript检测重定向 - 如何?
- 2. PHP检测URL是否重定向并重试重定向
- 3. 如何检测重定向的URL?
- 4. 如何使用mod_rewrite/htaccess从URL中检测并重定向?
- 5. PHP/JAVA:重定向/检测?
- 6. 检测和重定向基于URL
- 7. 将PHP重定向到自定义URL
- 8. Javascript URL重定向
- 9. URL重定向Javascript
- 10. URL重定向使用PHP或Apache重写
- 11. 使用PHP或Javascript自动将浏览器重定向到许多IP地址
- 12. 使用硒测试URL重定向
- 13. PHP重定向URL
- 14. php ---- url重定向
- 15. PHP重定向URL
- 16. PHP:检查URL是否重定向?
- 17. WordPress如何重定向或检测Javascript是否被禁用,对于Chrome?
- 18. 如何使JavaScript或PHP有条件地重定向?
- 19. 检测远程URL的重定向与PHP
- 20. 为什么php curl url将自己从php文件自动重定向到url?
- 21. JavaScript的手机检测和重定向
- 22. 使用标题PHP URL重定向
- 23. 得到302重定向url使用php
- 24. 使用PHP参数重定向URL
- 25. PHP检测cookie值并重定向
- 26. 如何使用C#将自定义标题重定向到URL?
- 27. Mac编程问题:如何检测WebView中重定向的URL?
- 28. 如何检测URL是否被重定向到另一个?
- 29. 如何在PHP中检测,删除和重定向URL中的最后一个#?
- 30. PHP在Google App Engine中如何检测传入重定向的url?
心灵澄清你问什么? –
使用curl(php)或ajax(js)并查找“位置”标头或“3xx”代码。只需在curl中禁用以下url即可。 – Cunning
@Cunning很多地方都会发送不只是网址缩写的重定向。 – Barmar