php實現新浪短連結調用API代碼

來源:互聯網
上載者:User
 代碼如下 複製代碼

<?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);

 //下面這行注釋用於調試,你可以把注釋去掉看看從sina返回的資訊是什麼東西
 //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);

 //下面這行注釋用於調試,你可以把注釋去掉看看從sina返回的資訊是什麼東西
 //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 = $long; //這裡自己看著辦,修改成你要縮短的網址還是擷取post的資料還是怎麼滴。

$url = filterUrl($url);
$short = sinaShortenUrl($url);
$ulong = sinaExpandUrl($short);
?>

本文中短串連已經附帶的一個appkey不用再自己申請KEY當然你如果需要使用你自己的您也可以自己去替換。至於用法就看你了,鑲入到其他程式使用啊?單獨做個產生短串連的頁面都不管我的事啊。使用方法不多說。最近比較懶。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.