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 session应用实例 登录验证
Mar 16 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 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 购物车的例子
2009/05/04 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
php微信开发之谷歌测距
2018/06/14 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Python类属性的延迟计算
2016/10/22 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
Python正则表达式学习小例子
2020/03/03 Python
django从后台返回html代码的实例
2020/03/11 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
浅谈Python __init__.py的作用
2020/10/28 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
大学军训感言1000字
2014/02/25 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python