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 28 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
PHP小教程之实现双向链表
Jun 12 PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
php + nginx项目中的权限详解
May 23 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到MongoDB简易对照表的详解
2013/06/03 PHP
php实现的二分查找算法示例
2017/06/20 PHP
JS获取父节点方法
2009/08/20 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python抓取百度查询结果的方法
2015/07/08 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
执行Python程序时模块报错问题
2020/03/26 Python
使用Django清空数据库并重新生成
2020/04/03 Python
python如何求100以内的素数
2020/05/27 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
学生实习推荐信范文
2013/11/26 职场文书
客服服务心得体会
2013/12/30 职场文书
法律进社区实施方案
2014/03/21 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
寒假生活随笔
2015/08/15 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书