Home  >  Article  >  php教程  >  php实现新浪短链接调用API代码

php实现新浪短链接调用API代码

WBOY
WBOYOriginal
2016-05-25 16:40:231062browse

前面写过了一篇文章是图片反盗链的,我自己弄得单独的页面就采用了sina的短连接,对于短连接来说还是方便的,地址太长占地方,下面分享源码,有注释,非原创,代码如下:

<?php
//Sina App_Key
define(&#39;SINA_APPKEY&#39;, &#39;31641035&#39;);
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 = &#39;&#39;) {
    $url = trim(strtolower($url));
    $url = trim(preg_replace(&#39;/^http:///&#39;, &#39;&#39;, $url));
    if ($url == &#39;&#39;) return false;
    else return urlencode(&#39;http://&#39; . $url);
}
//根据长网址获取短网址
function sinaShortenUrl($long_url) {
    //拼接请求地址,此地址你可以在官方的文档中查看到
    $url = &#39;http://api.t.sina.com.cn/short_url/shorten.json?source=&#39; . SINA_APPKEY . &#39;&url_long=&#39; . $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 == &#39;&#39;) return false;
    else return $json[0]->url_short;
}
//根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数
function sinaExpandUrl($short_url) {
    //拼接请求地址,此地址你可以在官方的文档中查看到
    $url = &#39;http://api.t.sina.com.cn/short_url/expand.json?source=&#39; . SINA_APPKEY . &#39;&url_short=&#39; . $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 == &#39;&#39;) return false;
    else return $json[0]->url_long;
} //开源代码phpfensi.com
//要缩短的网址
$url = $long; //这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。
$url = filterUrl($url);
$short = sinaShortenUrl($url);
$ulong = sinaExpandUrl($short);
?>

本文中短连接已经附带的一个appkey不用再自己申请KEY当然你如果需要使用你自己的您也可以自己去替换,至于用法就看你了,镶入到其他程序使用啊?单独做个生成短连接的页面都不管我的事啊,使用方法不多说,最近比较懒.


永久链接:

转载随意!带上文章地址吧。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn