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 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
PHP 地址栏信息的获取代码
Jan 07 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
May 27 PHP
php小偷相关截取函数备忘
Nov 28 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
为你总结一些php系统类函数
Oct 21 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
PHP Include文件实例讲解
Feb 15 PHP
PHP生成随机字符串实例代码(字母+数字)
Sep 11 PHP
tp5修改(实现即点即改)
Oct 18 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
js select option对象小结
2013/12/20 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
使用Python生成url短链接的方法
2015/05/04 Python
基python实现多线程网页爬虫
2015/09/06 Python
python生成式的send()方法(详解)
2017/05/08 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
中学教师管理制度
2014/01/14 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
学生会主席竞聘书
2014/03/31 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
公司奖励通知
2015/04/21 职场文书
社区党员干部承诺书
2015/05/04 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python