php 生成短链接

根据需求 - 选择自己生成短域名还是利用第三方api获得

自己生成短链接

注意:中心思想"域名转发"
既然是域名转发,所以我们需要两个域名
域名一:项目域名「www.a1.com」
域名二:中间域名「www.a2.com」

www.a1.com代码块「mvc框架,根据自己的框架调整代码」
class Api extends Base
{
    /**
     * 需要生成短连接的方法
     * @return string
     */
    public function indexAction()
    {
         $code = $_GET['psid'];
         $url =  'http://www.a1.com/api/index?psid=' . base64_encode($code); //有需要加密的参数,加密一下
         $shorturl = $this->urlShort($url);
         echo $shorturl;exit;
    }

    /**
     * 生成短链接方法
     * @return string
     */
    private function urlShort($url)
    {
        // 以下代码利用php函数生成短连接
        $do_url = crc32($url);
        $result = sprintf("%u", $do_url);
        $sUrl = '';
        while ($result > 0) {
            $s = $result % 62;
            if ($s > 35) {
                $s = chr($s + 61);
            } elseif ($s > 9 && $s <= 35) {
                $s = chr($s + 55);
            }
            $sUrl .= $s;
            $result = floor($result / 62);
        }
        // 把生成的短链接存储到redis里面「建议设置存储时间」
        self::$redis->set($sUrl, $url);
        // 设置短域名为:http://yoururl.com/「自己购买的域名」
        $data = 'http://www.a2.com/' . $sUrl;
        return $data;
    }

    /**
     * 返回短网址数据 暂不存库
     * @return string
     */
    public function geturlAction()
    {
        $dos = $_POST['dos'];
        die(self::$redis->get($dos));
    }
}
www.a2.com代码块「未使用框架,根据自己的框架调整代码」

利用第三方接口生成短链接

1.百度生成短链接接口
https://dwz.cn/console/apidoc

你可能感兴趣的:(php 生成短链接)