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程序
Oct 09 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
Yii调试SQL的常用方法
Jul 09 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
php操作memcache缓存方法分享
Jun 03 PHP
如何实现php图片等比例缩放
Jul 28 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
PHP7修改的函数
Mar 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简单获取复选框值的方法
2016/05/11 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
python 基础教程之Map使用方法
2017/01/17 Python
python构建深度神经网络(续)
2018/03/10 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
python实现udp传输图片功能
2020/03/20 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
建设工地安全标语
2014/06/07 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
详解 TypeScript 枚举类型
2021/11/02 Javascript