PHP调用新浪API 生成短链接
生活随笔
收集整理的這篇文章主要介紹了
PHP调用新浪API 生成短链接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們經常收到類似于這樣的短信(如下圖),發現其中的鏈接并不是常規的網址鏈接,而是個短小精悍的短鏈接,產品中經常需要這樣的需求,如果在給用戶下發的短信中是一個很長的連接,用戶體驗肯定很差,因此我們需要實現長鏈接轉換成短鏈接:
新浪提供了一個長短連接轉換的API,我們可以使用它:具體實現:(新浪官方接口API:http://open.weibo.com/wiki/微博API)
<?php /Sina App_Key define('SINA_APPKEY', '網站申請的key'); 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;elsereturn 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);//異常情況返回falseif (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '')return false;elsereturn $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);//異常情況返回falseif (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == '')return false;elsereturn $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); ?>3271760578
?
轉載于:https://www.cnblogs.com/nuanxin/p/10083739.html
總結
以上是生活随笔為你收集整理的PHP调用新浪API 生成短链接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ST25读FeliCa卡记录
- 下一篇: php 顺序结构,顺序存储结构php实现