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仿ZOL分页类代码
Oct 02 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
pdo中使用参数化查询sql
Aug 11 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
如何在php中正确的使用json
Aug 06 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 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
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
vue多次循环操作示例
2019/02/08 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
团结演讲稿范文
2014/05/23 职场文书
房产公证书
2015/01/23 职场文书
家长通知书家长意见
2015/06/03 职场文书
微信小程序实现轮播图指示器
2022/06/25 Javascript