php获取get跳转,PHP_php获取301跳转URL简单实例,复制代码 代码如下:/** * get - phpStudy...

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 相关阅读:

C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码

举例说明Java设计模式编程中ISP接口隔离原则的使用

JavaScript程序设计之JS调试

JS实现一个按钮的方法

从数组中随机取x条不重复数据的JS代码

asp.net上传图片并作处理水印与缩略图的实例代码

使用Get方式提交数据到Tomcat服务器的方法

js判断当前页面用什么浏览器打开的方法

android检测网络连接状态示例讲解

jquery showModelDialog的使用方法示例详解

C#编写ActiveX网页截图控件

JS动态增加删除UL节点LI及相关内容示例

AJAX和JSP混合使用方法实例

PHP上传图片进行等比缩放可增加水印功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值