• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php生成短网址/短链接原理和用法实例分析

    本文实例讲述了php生成短网址/短链接原理和用法。分享给大家供大家参考,具体如下:

    需求

    在我们的项目当中,如果需要更好传播我们的活动链接,但是链接太长1来是不美观,2来是太过于“笨重”,例如拼多多,淘宝联盟,他们的推广链接都是有短链接的,还有新浪微博。

    但是,这些始终都是别人的,我们调用别人的API进行生成,不稳定,所以可以自己做一个,注册一个稍微短一些的域名就行。

    生成源码api.php

    ?php
    header("Content-type:application/json");
    
    //GET URL
    $url = $_GET["url"];
    
    //过滤数据
    if (trim(empty($url))) {
      echo "{\"code\":\"1\",\"url\":\"未传入URL\"}";
    }else{
      //定义数据库配置
      $dbhost = "xxx";//数据库服务器地址
      $dbuser = "xxx";//数据库账号
      $dbpwd = "xxx";//数据库密码
      $dbname = "xxx";//数据库名
    
      //连接数据库
      $con = mysql_connect($dbhost,$dbuser,$dbpwd);
      if (!$con)
       {
       die('Could not connect: ' . mysql_error());
       }
      mysql_select_db($dbname, $con);
    
      //检查数据库是否已经存在该URL
      $check = mysql_query("SELECT * FROM 表名 WHERE long_url = '$url'");
      $check_result = mysql_num_rows($check);
      //如果已经存在,则直接返回之前生成的链接
      if ($check_result) {
        while ($row_yicunzai = mysql_fetch_array($check)) {
          $yicunzai_key = $row_yicunzai["dwz_key"];
          //返回KEY
          echo "{\"code\":\"0\",\"url\":\"域名".$yicunzai_key."\"}";
        }
      }else{
        //生成KEY
        $key_str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        $key = substr(str_shuffle($key_str),mt_rand(0,strlen($key_str)-11),4);
    
        //生成短链接
        mysql_query("INSERT INTO lkydwz (long_url, dwz_key) VALUES ('$url', '$key')");
    
        //返回结果
        echo "{\"code\":\"0\",\"url\":\"域名".$key."\"}";
      }
    
      //断开数据库连接
      mysql_close($con);
    }
    
    ?>
    
    

    访问源码index.php

    ?php
    header("Content-Type:text/html;charset=utf-8");
    //获得当前传过来的KEY
    $key = $_GET["id"];
    echo "title>正在跳转/title>";
    //过滤数据
    if (trim(empty($key))) {
      echo "链接不存在";
    }else{
      //解析KEY
      //定义数据库配置
      $dbhost = "xxx";//数据库服务器地址
      $dbuser = "xxx";//数据库账号
      $dbpwd = "xxx";//数据库密码
      $dbname = "xxx";//数据库名
      //连接数据库
      $con = mysql_connect($dbhost,$dbuser,$dbpwd);
      if (!$con)
       {
       die('Could not connect: ' . mysql_error());
       }
      mysql_select_db($dbname, $con);
    
      //查询数据库,通过KEY获取长链接进行跳转
      //检查数据库是否存在该KEY
      $check = mysql_query("SELECT * FROM 表名 WHERE dwz_key = '$key'");
      $check_result = mysql_num_rows($check);
      //如果存在,则解析出长链接并跳转
      if ($check_result) {
        while ($row_long_url = mysql_fetch_array($check)) {
          $long_url = $row_long_url["long_url"];
          // echo "script>location.href=\"".$long_url."\";/script>";
          header("Location: $long_url");
        }
      }else{
        echo "链接不存在";
      }
    }
    ?>
    
    

    Apache规则.htaccess

    RewriteEngine On
    #RewriteBase / 
    RewriteRule ^(\w+)$ index.php?id=$1
    
    

    数据库字段

    id(int)自增
    dwz_key(varchar)
    long_url(text)
    creat_time(TIMESTAMP)
    
    

    使用方法

    1、访问api.php?url=长链接,即可生成短链接,例如返回JSON

    {"code":"0","url":"http://xxx.cn/Hp8R"}
    

    2、新建.htaccess,把上面规则复制进去,保存
    3、新建index.php,把上面代码拷贝进去,配置好数据库。访问http://xxx.cn/Hp8R,就会自动跳转到你的长链接

    PS:这里为大家推荐一款本站短网址生成工具(也是使用的第三方API接口生成的短网址)

    短链(短网址)在线生成工具:
    http://tools.jb51.net/password/dwzcreate

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》及《PHP中json格式数据操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 一个php短网址的生成代码(仿微博短网址)
    • PHP生成短网址的3种方法代码实例
    • php简单实现短网址(短链)还原的方法(测试可用)
    • PHP生成短网址方法汇总
    • PHP将URL转换成短网址的算法分享
    • PHP长网址与短网址的实现方法
    • php生成短网址示例
    • PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
    • PHP生成短网址的思路以及实现方法的详解
    • PHP利用DWZ.CN服务生成短网址
    • php 短链接算法收集与分析
    • php调用新浪短链接API的方法
    上一篇:PHP const定义常量及global定义全局常量实例解析
    下一篇:php实现的证件照换底色功能示例【人像抠图/换背景图】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php生成短网址/短链接原理和用法实例分析 php,生成,短,网址,链接,原理,