解析百度搜索结果链接的url,获取真正的url

摘要:
˂? url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu“;$info=parse_url($url);$fp=fsockopen($info['host'],80,$errno,$errstr,30);fputs($fp,“GET{$info['路径']}?{$info['查询']}HTTP/1.1”);fput($fp,“主机:{$info['host'}”);fputs(“连接:关闭”);$rewrite='';while(!feof($fp)){$line=fgets($fp);if($line!=“”){if(strpos($line,'Location:')!==false){$rewrite=str_replace(array(“”,“”,”Location:“),“”,$line);}}否则{break;}var_转储($rewrite);//结果显示:string(22)“http://www.google.com/ "?
<?php
$url = "http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu";

$info = parse_url($url);
$fp = fsockopen($info['host'], 80,$errno, $errstr, 30);
fputs($fp,"GET {$info['path']}?{$info['query']} HTTP/1.1
");
fputs($fp, "Host: {$info['host']}
");
fputs($fp, "Connection: close

");
$rewrite = '';
while(!feof($fp)) {
    $line = fgets($fp);
    if($line != "
" ) {
        if(strpos($line,'Location:') !== false) {
            $rewrite = str_replace(array("
","
","Location: "),'',$line);
        }
    }else {
        break;
    }
}
var_dump($rewrite); //结果显示:string(22) "http://www.google.com/" 
?>

 将http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu解析为http://www.google.com/

免责声明:文章转载自《解析百度搜索结果链接的url,获取真正的url》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win7下恢复文件默认图标商米D1S一体机设置搜狗手写输入法图解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

理解杀进程的实现原理

copy from : http://gityuan.com/2016/04/16/kill-signal/ 基于Android 6.0的源码剖析, 分析kill进程的实现原理,以及讲讲系统调用(syscall)过程,涉及源码: /framework/base/core/java/android/os/Process.java /framework/bas...

在Ubuntu上搭建Zookeeper集群

Zookeeper集群搭建 集群安装 先下载zookeeper压缩包(可从官网下载) 我这里是apache-zookeeper-3.5.8-bin.tar.gz 在各台主机上解压到/usr/local/zookeeper tar -zxvf /home/hadoop/桌面/apache-zookeeper-3.5.8-bin.tar.gz su //...

websocket长连接压力测试踩过的坑

Websocket协议压测记录 背景: 公司的行情系统是采用的websocket协议,有请求和订阅两种方式向服务器申请最新行情信息。请求方式是一次的,订阅方式是建立连接后,服务器定时向客户端推送行情信息。 初步测试方案: 因考虑到websocket是双工通讯,是长连接,并且本次压测的性能指标是系统能建立的最大连接数,并且是建立连接后服务器能持续向客户端推送...

remote stacktrace: Backtrace 异常的解决办法

1、异常提示:020-06-03 09:58:10,295 INFO [ThreadPoolTaskExecutor-1] org.openqa.selenium.Capabilities (116)- Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()` St...

flask中路由系统

flask中的路由我们并不陌生,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 1.@app.route()装饰器中的参数 methods:当前url地址,允许访问的请求方式 @app.route("/info", methods=["GET", "POST"]) def student_info(...

OpenStack 创建虚机过程简要汇总

1. 总体流程 翻译自原文(英文):https://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-openstack/ 创建虚机的请求流如下: Dashboard 或者 CLI 获取用户的登录信息,调用 Keystone 的 REST API 去做用户身份验证。...