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 采集心得技巧
May 15 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
php中的观察者模式
Mar 24 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
php mysql 封装类实例代码
Sep 18 PHP
PHP的Json中文处理解决方案
Sep 29 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
PHP时间类完整代码实例
Feb 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
Python ftp上传文件
2016/02/13 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
本科生详细的自我评价
2013/09/19 职场文书
资料员的岗位职责
2013/11/20 职场文书
童装店创业计划书
2014/01/09 职场文书
中文师范生自荐信
2014/01/30 职场文书
租车协议书范本
2014/04/22 职场文书
学雷锋倡议书
2015/01/19 职场文书
大班下学期个人总结
2015/02/13 职场文书
交流会主持词
2015/07/02 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
nginx内存池源码解析
2021/11/20 Servers