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的库,结果发现很多东西
Dec 31 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
解析php中反射的应用
Jun 18 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
phalcon框架使用指南
Feb 23 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
Fleaphp常见函数功能与用法示例
Nov 15 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
php测试kafka项目示例
2020/02/06 PHP
splice slice区别
2006/10/09 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
求职信范文英文版
2014/01/05 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
2015新年寄语大全
2014/12/08 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python