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中检查PHP文件是否有语法错误的方法
Dec 23 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 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
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
浅析python中的分片与截断序列
2016/08/09 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
50道外企软件测试面试题
2014/08/18 面试题
公益活动邀请函
2014/02/05 职场文书
教师考核材料
2014/05/21 职场文书
售后服务承诺函格式
2015/01/21 职场文书
财政局个人年终总结
2015/03/03 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL