`
cloudmail
  • 浏览: 267045 次
  • 来自: 广州
社区版块
存档分类
最新评论

PHP调用t.cn新浪短网址服务API(JSON版)

阅读更多

没什么好讲了,重要的地方我都在代码中注释了,主要是APP_KEY,这个需要你自己去新浪的开放平台申请,地址:http://open.t.sina.com.cn/ 。注册后随便添加个app就可以得到key了(在没有APP_KEY的情况下你也可以通过oAuth认证方式实现)。

 

下面是PHP的调用代码:

 

1 <?php
2 //Sina App_Key
3 define('SINA_APPKEY''你的App_Key');
4  
5 function curlQuery($url) {
6     //设置附加HTTP头
7     $addHead array(
8         "Content-type: application/json"
9     );
10  
11     //初始化curl,当然,你也可以用fsockopen代替
12     $curl_obj = curl_init();
13  
14     //设置网址
15     curl_setopt($curl_obj, CURLOPT_URL, $url);
16  
17     //附加Head内容
18     curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead);
19  
20     //是否输出返回头信息
21     curl_setopt($curl_obj, CURLOPT_HEADER, 0);
22  
23     //将curl_exec的结果返回
24     curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);
25  
26     //设置超时时间
27     curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15);
28  
29     //执行
30     $result = curl_exec($curl_obj);
31  
32     //关闭curl回话
33     curl_close($curl_obj);
34  
35     return $result;
36 }
37  
38 //简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误
39 function filterUrl($url '') {
40     $url = trim(strtolower($url));
41     $url = trim(preg_replace('/^http:\/\//'''$url));
42     if ($url == '')
43         return false;
44     else
45         return urlencode('http://' $url);
46 }
47  
48 //根据长网址获取短网址
49 function sinaShortenUrl($long_url) {
50     //拼接请求地址,此地址你可以在官方的文档中查看到
51     $url 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY .'&url_long=' $long_url;
52  
53     //获取请求结果
54     $result = curlQuery($url);
55  
56     //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西
57     //print_r($result);exit();
58  
59     //解析json
60     $json = json_decode($result);
61  
62     //异常情况返回false
63     if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short =='')
64         return false;
65     else
66         return $json[0]->url_short;
67 }
68  
69 //根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数
70 function sinaExpandUrl($short_url) {
71     //拼接请求地址,此地址你可以在官方的文档中查看到
72     $url 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY .'&url_short=' $short_url;
73  
74     //获取请求结果
75     $result = curlQuery($url);
76  
77     //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西
78     //print_r($result);exit();
79  
80     //解析json
81     $json = json_decode($result);
82  
83     //异常情况返回false
84     if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long =='')
85         return false;
86     else
87         return $json[0]->url_long;
88 }
89  
90 //要缩短的网址
91 $url 'http://www.xingdonghai.cn';
92  
93 $url = filterUrl($url);
94 $short = sinaShortenUrl($url);
95 $ulong = sinaExpandUrl($short);
96 echo "源网址:{$ulong}<br />短网址:{$short}";
97 ?>

 

 

最后附官方API文档地址:

 

关于短网址的一些API:http://t.cn/hd5b1z

shorten:http://t.cn/hd5GxC

expand:http://t.cn/hd5Gl3

 

http://www.xingdonghai.cn/php-sina-short-url-api-json/

分享到:
评论
3 楼 cloudmail 2014-12-04  
sina返回的结果:
[{"url_short":"http://t.cn/R7m49uI","url_long":"http://www.qq.com/1.html","type":0}]
2 楼 cloudmail 2014-11-26  
http://www.dwz.cn/
http://help.baidu.com/question?prod_en=webmaster&class=%CD%F8%D2%B3%CB%D1%CB%F7%CC%D8%C9%AB%B9%A6%C4%DC&id=1000913#05

baidu短网址api
1 楼 cloudmail 2014-11-08  
for i in {1..2000}; do wget -O t "http://api.t.sina.com.cn/short_url/shorten.json?source=1681459862&url_long=http://www.qq.com/$i.html"; echo -n "[`date '+%T'`]" >> t2; cat t >> t2; done

经测试,每秒钟可以查询到10条结果

相关推荐

    PHP通过调用新浪API生成t.cn格式短网址链接的方法详解

    本文实例讲述了PHP通过调用新浪API生成t.cn格式短网址链接的方法。分享给大家供大家参考,具体如下: 新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接。 API: ...

    [API]新浪股票api调用

    简单的新浪股票API调用

    php调用新浪短链接API的方法

    本文实例讲述了php调用新浪短链接API的方法。分享给大家供大家参考。具体方法如下: 复制代码 代码如下:&lt;?php //Sina App_Key define(‘SINA_APPKEY’, ‘31641035’); function curlQuery($url) {  //设置附加...

    php新浪微博转发,发布微博apiSDK

    php新浪微博转发,发布微博apiSDK,里面有调用范例

    新浪微博API调用代码 一

    调用新浪微博API的代码整体有五部分,主代码是weibolist.php。通过相关配置,执行完代码之后,就会导出你粉丝所关注的所有人列表、你粉丝的粉丝列表等等。

    新浪微博API 五

    调用新浪微博API的代码整体有五部分,主代码是weibolist.php。通过相关配置,执行完代码之后,就会导出你粉丝所关注的所有人列表、你粉丝的粉丝列表等等。

    新浪和腾讯微博Oauth认证Demo(php版)

    1.入口文件:index.php,默认调用base -&gt; index,载入选择网站界面 2.自动加载class下的类文件,加载规则:以类名 + ".class.php"寻找文件 3./class/下,文件名中含有If的文件,定义的是接口.总计3个接口文件:各个网站的...

    根据ip调用新浪api获取城市名并转成拼音

    功能:1,获取当前IP地址,2,调用新浪API,获取到当前城市。3,将中文转换为拼音后跳转。 复制代码 代码如下:&lt;?php include ‘./pinyin.php’; //获取当前ipfunction getIp(){ $onlineip=”; if(getenv(...

    新浪微博API 四

    调用新浪微博API的代码整体有五部分,主代码是weibolist.php。通过相关配置,执行完代码之后,就会导出你粉丝所关注的所有人列表、你粉丝的粉丝列表等等。

    新浪微博API 二

    调用新浪微博API的代码整体有五部分,主代码是weibolist.php。通过相关配置,执行完代码之后,就会导出你粉丝所关注的所有人列表、你粉丝的粉丝列表等等。

    新浪微博API 三

    调用新浪微博API的代码整体有五部分,主代码是weibolist.php。通过相关配置,执行完代码之后,就会导出你粉丝所关注的所有人列表、你粉丝的粉丝列表等等。

    PHP调用API接口实现天气查询功能的示例

    天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等。 1、查询方式 根据地名查询各城市天气情况 2.请求URL地址...

    php生成短网址/短链接原理和用法实例分析

    本文实例讲述了php生成短网址/短链接原理和用法。分享给大家供大家参考,具体如下: 需求 在我们的项目当中,如果需要更好传播我们的活动链接,但是链接太长1来是不美观,2来是太过于“笨重”,例如拼多多,淘宝联盟...

    php飞信每日自动天气预报

    新浪SAE免费php空间申请地址:http://sae.sina.com.cn/activity/invite/101149/weibo 新浪SAE免费php空间注册功略:http://hbwanghai.blog.163.com/blog/static/199297147201222310226519/ 优点 1.不用购买独立空间/...

    CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库

    CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多...调用新浪API查询IP地理位置 &lt;?php echo getIpLocation('sina'); ?&gt; 调用pconline API查询IP地理位置 &lt;?php echo getIpLocation('pconline'); ?&gt;

    ThinkPHP开发类库扩展

    成功获取到access_token之后就可以调用相应平台的API了,调用方法比较简单,只需要调用$sdk-&gt;call($api, $param, $method)方法就可以了,其中:$api为接口名称,$param为接口参数(格式:name1=value1&name2=value2...

    新浪微博SDK for .Net 4.0第二版源码2012530

    新浪微博SDK for .Net 4.0第二版源码 项目描述 第二版SDK的一些新特性: 采用了新浪官方主推的OAuth2.0进行授权和认证 所有接口都升级到了官方V2版的API,也就是说可以用官方V2版的API机型操作了 参考了官方PHP版的...

    Xweibo v2.1 Beta,新浪开源微博系统源码.zip

    Xweibo v2.1 beta版具有Xweibo v2.0 正式版拥有新浪微博的核心功能,具备微博发布、浏览、转发、评论、收藏、话题、黑名单等核心功能以外,还满足更多运营需求:数据本地备份、设置网站粉丝/关注关系从零开始或继续...

Global site tag (gtag.js) - Google Analytics