新浪短鏈接API接口示例


<?php

/**
 * URL地址長短切換,由sina新浪短鏈接API生成
 * User: chenqt
 * Date: 2016/8/23
 * Time: 18:45
 */

class UrlSwitch
{
    public function __construct()
    {
        //訪問sina的key
        $this->sina_appkey = '31641035';
    }

    private function curlQuery($url)
    {

        //設置附加HTTP頭
        $addHead = array(
            "Content-type: application/json"
        );

        //初始化curl,當然,你也可以用fsockopen代替
        $curl_obj = curl_init();

        //設置網址
        curl_setopt($curl_obj, CURLOPT_URL, $url);

        //附加Head內容
        curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead);

        //是否輸出返回頭信息
        curl_setopt($curl_obj, CURLOPT_HEADER, 0);

        //將curl_exec的結果返回
        curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);

        //設置超時時間
        curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15);

        //執行
        $result = curl_exec($curl_obj);

        //關閉curl回話
        curl_close($curl_obj);
        return $result;
    }

    //簡單處理下url,sina對於沒有協議(http://)開頭的和不規范的地址會返回錯誤
    public function filterUrl($url = '')
    {
        $url = trim(strtolower($url));
        $url = trim(preg_replace('/^http:\/\//', '', $url));
        if ($url == '')
            return false;
        else
            return urlencode('http://' . $url);
    }

    //根據長網址獲取短網址
    public function sinaShortenUrl($long_url)
    {

        //拼接請求地址,此地址你可以在官方的文檔中查看到
        $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . $this->sina_appkey . '&url_long=' . $long_url;

        //獲取請求結果
        $result = $this->curlQuery($url);

        //解析json
        $json = json_decode($result);

        //異常情況返回false
        if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '') {
            return false;
        } else {
            return $json[0]->url_short;
        }
    }

    //根據短網址獲取長網址,此函數重用了不少sinaShortenUrl中的代碼,以方便你閱讀對比,你可以自行合並兩個函數
    function sinaExpandUrl($short_url) {
        //拼接請求地址,此地址你可以在官方的文檔中查看到
        $url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . $this->sina_appkey . '&url_short=' . $short_url;

        //獲取請求結果
        $result = $this->curlQuery($url);

        //解析json
        $json = json_decode($result);

        //異常情況返回false
        if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == '') {
            return false;
        } else {
            return $json[0]->url_long;
        }
    }
}

$urlObj = new UrlSwitch();
$url = $urlObj->filterUrl('http://www.test.com/url.php?type=url&openid=2323kfjdskljfldsajfdsa');
echo $urlObj->sinaShortenUrl($url);

長鏈接轉為短鏈接,不影響鏈接所帶參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM