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 10 PHP
PHP中MD5函数使用实例代码
Jun 07 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
Yii框架上传图片用法总结
Mar 28 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
python抖音表白程序源代码
2019/04/07 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Django如何使用redis作为缓存
2020/05/21 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
北承题目(C++)
2012/05/16 面试题
校长先进事迹材料
2014/02/01 职场文书
人事专员职责
2014/02/22 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
党员转正介绍人意见
2015/06/03 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python