怎么在php項(xiàng)目中調(diào)用新浪短鏈接API?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)開(kāi)發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開(kāi)發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。代碼如下:
//Sina App_Key
define('SINA_APPKEY', '31641035');
function curlQuery($url) {
//設(shè)置附加HTTP頭
$addHead = array(
"Content-type: application/json"
);
//初始化curl,當(dāng)然,你也可以用fsockopen代替
$curl_obj = curl_init();
//設(shè)置網(wǎng)址
curl_setopt($curl_obj, CURLOPT_URL, $url);
//附加Head內(nèi)容
curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead);
//是否輸出返回頭信息
curl_setopt($curl_obj, CURLOPT_HEADER, 0);
//將curl_exec的結(jié)果返回
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);
//設(shè)置超時(shí)時(shí)間
curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15);
//執(zhí)行
$result = curl_exec($curl_obj);
//關(guān)閉curl回話
curl_close($curl_obj);
return $result;
}
//簡(jiǎn)單處理下url,sina對(duì)于沒(méi)有協(xié)議(http://)開(kāi)頭的和不規(guī)范的地址會(huì)返回錯(cuò)誤
function filterUrl($url = '') {
$url = trim(strtolower($url));
$url = trim(preg_replace('/^http:///', '', $url));
if ($url == '')
return false;
else
return urlencode('http://' . $url);
}
//根據(jù)長(zhǎng)網(wǎng)址獲取短網(wǎng)址
function sinaShortenUrl($long_url) {
//拼接請(qǐng)求地址,此地址你可以在官方的文檔中查看到
$url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url;
//獲取請(qǐng)求結(jié)果
$result = curlQuery($url);
//下面這行注釋用于調(diào)試,你可以把注釋去掉看看從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;
}
//根據(jù)短網(wǎng)址獲取長(zhǎng)網(wǎng)址,此函數(shù)重用了不少sinaShortenUrl中的代碼,以方便你閱讀對(duì)比,你可以自行合并兩個(gè)函數(shù)
function sinaExpandUrl($short_url) {
//拼接請(qǐng)求地址,此地址你可以在官方的文檔中查看到
$url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url;
//獲取請(qǐng)求結(jié)果
$result = curlQuery($url);
//下面這行注釋用于調(diào)試,你可以把注釋去掉看看從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;
}
//要縮短的網(wǎng)址
$url = $long; //這里自己看著辦,修改成你要縮短的網(wǎng)址還是獲取post的數(shù)據(jù)還是怎么滴。
$url = filterUrl($url);
$short = sinaShortenUrl($url);
$ulong = sinaExpandUrl($short);
?>
看完上述內(nèi)容,你們掌握怎么在php項(xiàng)目中調(diào)用新浪短鏈接API的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!