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 模板高级篇总结
Dec 21 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
PHP 身份证号验证函数
May 07 PHP
PHP中extract()函数的妙用分析
Jul 11 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
zf框架db类的分页示例分享
Mar 14 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
PHP实现链表的定义与反转功能示例
Jun 09 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
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
php编程每天必学之验证码
2016/03/03 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python中变量交换的例子
2014/08/25 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
Internet体系结构
2014/12/21 面试题
父亲八十大寿答谢词
2014/01/23 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
通知的格式范文
2015/04/27 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
庭外和解协议书
2016/03/23 职场文书
Python 内置函数速查表一览
2021/06/02 Python
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
python使用BeautifulSoup 解析HTML
2022/04/24 Python
python数字图像处理:图像的绘制
2022/06/28 Python