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桌面中心(一) 创建数据库
Mar 11 PHP
php 动态多文件上传
Jan 18 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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+MySql编写聊天室
2006/10/09 PHP
用PHP实现维护文件代码
2007/06/14 PHP
php页面缓存方法小结
2015/01/10 PHP
php实现删除空目录的方法
2015/03/16 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
Move.js入门
2017/02/08 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
django中嵌套的try-except实例
2020/05/21 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
经济类毕业生求职信
2014/06/26 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
中学音乐课教学反思
2016/02/18 职场文书
高效课堂教学反思
2016/02/24 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫