php获取301跳转URL
/** * get_redirect_url() * Gets the address that the provided URL redirects to, * or FALSE if there's no redirect. * * @param string $url * @return string */function get_redirect_url($url){ $redirect_url = null; $url_parts = @parse_url($url); if (!$url_parts) return false; if (!isset($url_parts['host'])) return false; //can't process relative URLs if (!isset($url_parts['path'])) $url_parts['path'] = '/'; $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30); if (!$sock) return false; $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . " HTTP/1.1/r/n"; $request .= 'Host: ' . $url_parts['host'] . "/r/n"; $request .= "Connection: Close/r/n/r/n"; fwrite($sock, $request); $response = ''; while(!feof($sock)) $response .= fread($sock, 8192); fclose($sock); if (preg_match('/^Location: (.+?)$/m', $response, $matches)){ if ( substr($matches[1], 0, 1) == "/" ) return $url_parts['scheme'] . "://" . $url_parts['host'] . trim($matches[1]); else return trim($matches[1]); } else { return false; } }/** * get_all_redirects() * Follows and collects all redirects, in order, for the given URL. * * @param string $url * @return array */function get_all_redirects($url){ $redirects = array(); while ($newurl = get_redirect_url($url)){ if (in_array($newurl, $redirects)){ break; } $redirects[] = $newurl; $url = $newurl; } return $redirects;}php实现用socket获取301跳转地址,可以提取跳转过程中的url
报名学习加微信/QQ 1602007,关注《东方联盟网》微信公众号
>更多相关文章
- 02-25谷歌推行Tango 3D智能视效手机开发项目
- 12-22php $_server应用
- 12-22PHP 解决一次因压缩代码引发的死循环
- 12-22php jquery 多文件上传
- 12-22该如何使用thinkphp分表呢?
- 12-22thinkPHP模板的输出和模型的使用
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 04-08岚图汽车:一季度海外订单同比增长205%
- 04-08小米汽车回应大家关心的问题:事故车起火并
- 03-29黑客组织攻击纽约大学官网,泄露 300万学生
- 03-29阿里妈妈广告自研AI模型LMA升级至万亿级参数
- 03-29筑牢食品安全防线 构建放心消费环境
相关文章
24小时热门资讯
热门推荐
最新资讯
操作系统
黑客防御