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启发和小结
Nov 01 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
PHP使用函数用法详解
2018/09/30 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
Python计算两个日期相差天数的方法示例
2017/05/23 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
python Paramiko使用示例
2020/09/21 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
部队领导证婚词
2014/01/12 职场文书
带薪年假请假条
2014/02/04 职场文书
股东协议书
2014/04/14 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
离婚协议书范本2014
2014/10/27 职场文书
大国崛起观后感
2015/06/02 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
springcloud整合seata
2022/05/20 Java/Android
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android