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


Posted in PHP onNovember 08, 2014

本文实例讲述了php调用新浪短链接API的方法。分享给大家供大家参考。具体方法如下:

<?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当然你如果需要使用你自己的您也可以自己去替换。至于用法就看你了,镶入到其他程序使用,单独做个生成短连接的页面都可以。使用方法就不多说了。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php中文本操作的类
Mar 17 PHP
如何在PHP程序中防止盗链
Apr 09 PHP
PHP 七大优势分析
Jun 23 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
分享一则PHP定义函数代码
Feb 26 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
php生成mysql的数据字典
Jul 07 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
php禁止浏览器使用缓存页面的方法
Nov 07 #PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 #PHP
php采用file_get_contents代替使用curl实例
Nov 07 #PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 #PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 #PHP
php的curl封装类用法实例
Nov 07 #PHP
PHP使用ob_start生成html页面的方法
Nov 07 #PHP
You might like
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
javascript new后的constructor属性
2010/08/05 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
python返回数组的索引实例
2019/11/28 Python
Django框架请求生命周期实现原理
2020/11/13 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
JSF界面控制层技术
2013/06/17 面试题
销售人员个人求职信
2013/09/26 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
培训讲师邀请函
2014/01/10 职场文书
人事主管岗位职责
2014/01/30 职场文书
社会学专业求职信
2014/02/24 职场文书
关于安全演讲稿
2014/05/09 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
工伤私了协议书范本
2014/11/24 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python