1. 程式人生 > 其它 >html怎麼連線api vue.js_PHP實現新浪長連結轉化成短連結API

html怎麼連線api vue.js_PHP實現新浪長連結轉化成短連結API

技術標籤:html怎麼連線api vue.js

我們經常收到類似於這樣的簡訊(如下圖),發現其中的連結並不是常規的網址連結,而是個短小精悍的短連結,產品中經常需要這樣的需求,如果在給使用者下發的簡訊中是一個很長的連線,使用者體驗肯定很差,因此我們需要實現長連結轉換成短連結:

683e07f78d99f338b1d0ab48ed9fe28b.png

  新浪提供了一個長短連線轉換的API,我們可以使用它:具體實現:(新浪官方介面API:http://open.weibo.com/wiki/微博API)

<?php
/Sina App_Key
define('SINA_APPKEY', '31641035');
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://)開頭的和不規範的地址會返回錯誤
function filterUrl($url = '') {
    $url = trim(strtolower($url));
    $url = trim(preg_replace('/^http://', '', $url));
    if ($url == '')
        return false;
    else
        return urlencode('http://' . $url);
}
//根據長網址獲取短網址
function sinaShortenUrl($long_url) {
    //拼接請求地址,此地址你可以在官方的文件中檢視到
    $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url;
    //獲取請求結果
    $result = curlQuery($url);
    //下面這行註釋用於除錯,
    //print_r($result);exit();
    //解析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=' . SINA_APPKEY . '&url_short=' . $short_url;
    //獲取請求結果
    $result = curlQuery($url);
    //下面這行註釋用於除錯
    //print_r($result);exit();
    //解析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;
}
//要縮短的網址
$url = "cccc.com/a/index.php?a=1211"; //這裡自己看著辦,修改成你要縮短的網址還是獲取post的資料還是怎麼滴。
$url = filterUrl($url);  //對URL進行簡單處理的方法
echo $short = sinaShortenUrl($url);      //根據傳入的長網址生產短網址
echo "</br>";
echo $ulong = sinaExpandUrl($short);
?>

以上內容希望幫助到大家,更多PHP大廠PDF面試文件,PHP進階架構視訊資料,PHP精彩好文可以關注公眾號:PHP開源社群,或者訪問:

精華PHP技術文章整理合集——PHP框架篇

精華PHP技術文合集——微服務架構篇

精華PHP技術文合集——分散式架構篇

精華PHP技術文合集——高併發場景篇

精華PHP技術文章整理合集——資料庫篇

來源:https://www.cnblogs.com/Steven-shi/p/8524413.html