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下实现折线图效果的代码
Apr 28 PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
destoon之一键登录设置
Jun 21 PHP
php以post形式发送xml的方法
Nov 04 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
php去除数组中重复数据
Nov 18 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP实现递归无限级分类
2015/10/22 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
有趣的python小程序分享
2017/12/05 Python
python去除文件中重复的行实例
2018/06/29 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
元旦联欢会主持词
2014/03/26 职场文书
英语教研活动总结
2014/07/02 职场文书
升学宴答谢词
2015/01/05 职场文书
公证书格式
2015/01/23 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
JavaScript的Set数据结构详解
2022/02/18 Javascript
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript