php简单实现短网址(短链)还原的方法(测试可用)


Posted in PHP onMay 09, 2016

本文实例讲述了php简单实现短网址还原的方法。分享给大家供大家参考,具体如下:

这里以三水点靠木https://3water.com的短网址http://t.cn/heEHwk为例运行效果截图如下:

php简单实现短网址(短链)还原的方法(测试可用)

具体代码如下:

<?php
$info1 = '亲!暂不能解析此类短网址。';
$info2 = '亲!网址解析失败,请重试。';
$info3 = '<br/><b><a href="';
$info4 = '" target="_blank">立即访问>></a></b>';
$info5 = '亲!不是短网址或无效。';
function unshort($url)
{
global $info1,$info2,$info3,$info4;
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
 curl_setopt ($curl, CURLOPT_USERAGENT, 'Mozilla/8.0 (compatible; MSIE 8.0; Windows 7');
 curl_setopt($curl, CURLOPT_HEADER, 1);
 curl_setopt($curl, CURLOPT_NOBODY, 0);
 curl_setopt($curl, CURLOPT_TIMEOUT, 15);
 curl_setopt($curl,CURLOPT_ENCODING, 'gzip');
 $data = curl_exec($curl);
 if(!empty($data)){
 $message = curl_getinfo($curl);
  curl_close($curl);
   $status = $message['http_code'];
   if ($status == '301' || $status == '302' ){
    $UrlHeader = (get_headers($url,1));
    $unurl = $UrlHeader[Location];
    if(is_array($unurl)) {
     $unurl = $unurl[0];
     $unurl .=$info3.$unurl.$info4;
     return $unurl;
     }
    else {
    $unurl .=$info3.$unurl.$info4;
    return $unurl;
    }
   }
  return $info1;
 }
 return $info2;
}
function adfunshort($url)
{
global $info3,$info4,$info5;
 $c = file_get_contents($url);
 $p = "/url = '(.*)';/isU";
 preg_match($p, $c, $content);
 $unurl = $content[1];
 if($unurl == '') {
  return $info5;
 }
 else {
  $unurl .=$info3.$unurl.$info4;
  return $unurl;
 }
}
?>
<form action="" method="post">
短网址:<input type="text" name="turl" class="inurl" size="26" />
<input type="hidden" name="url_done" value="done" />
<input type="submit" value="提交" class="suburl" />
</form>
<div id="trurl">
<?php
$turl = $_POST['turl']?$_POST['turl']:"";
$url_done= $_POST['url_done']?$_POST['url_done']:"";
if ($url_done == 'done'){
$http = substr($turl,0,7);
 if ($http != 'http://' && $http != 'https:/'){
  $turl = 'http://'.$turl;
  }
  $tturl = substr($turl,0,11);
  if ($tturl == 'http://adf.'){
  $longurl = adfunshort($turl);
  }else {
  $longurl = unshort($turl);
 }echo "短网址 ".$turl." 的真实网址为:<br />$longurl ";
}
?>

另外,本站还提供了短网址生成工具,具体链接如下:

更多关于PHP相关内容可查看本站专题:《php加密方法总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
使用PHP批量生成随机用户名
Jul 10 PHP
php过滤危险html代码
Aug 18 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
php实现读取内存顺序号
Mar 29 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
PHP 数组遍历foreach语法结构及实例
Jun 13 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
Laravel框架查询构造器简单示例
May 08 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
php数据访问之增删改查操作
May 09 #PHP
php简单实现批量上传图片的方法
May 09 #PHP
php简单备份与还原MySql的方法
May 09 #PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 #PHP
php简单复制文件的方法
May 09 #PHP
win10环境PHP 7 安装配置【教程】
May 09 #PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 #PHP
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
python列表返回重复数据的下标
2020/02/10 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
电力公司个人求职信范文
2014/02/04 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
党员志愿者活动方案
2014/08/28 职场文书
怎样写离婚协议书
2014/09/10 职场文书
信访稳定工作汇报
2014/10/27 职场文书
学生评语集锦
2015/01/04 职场文书
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
JavaScript中isPrototypeOf函数
2021/11/07 Javascript