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代码
Apr 09 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
基于MySQL体系结构的分析
May 02 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
PHP实现递归无限级分类
Oct 22 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
Jan 20 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
javascript第一课
2007/02/27 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
讲解Python中运算符使用时的优先级
2015/05/14 Python
python写一个md5解密器示例
2018/02/23 Python
Pandas中resample方法详解
2019/07/02 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
公积金单位接收函
2014/01/11 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
工作经验交流材料
2014/12/30 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis