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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
学习php分页代码实例
Oct 24 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
WordPress自定义时间显示格式
Mar 27 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
详解PHP队列的实现
Mar 14 PHP
PHP遍历数组的6种方式总结
Nov 17 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
php error_log 函数的使用
2009/04/13 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python迭代dict的key和value的方法
2018/07/06 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
virtualenv介绍及简明教程
2020/06/23 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
服务员岗位职责
2014/01/29 职场文书
五年级数学教学反思
2014/02/11 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
关爱老人标语
2014/06/21 职场文书
单位委托书怎么写
2014/08/02 职场文书
英文产品推荐信
2015/03/27 职场文书