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 相关文章推荐
对盗链说再见...
Oct 09 PHP
3
Oct 09 PHP
PHP调用三种数据库的方法(1)
Oct 09 PHP
杏林同学录(六)
Oct 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
PHP多进程编程实例
Oct 15 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php实现mysql事务处理的方法
Dec 25 PHP
PHP实现阳历到农历转换的类实例
Mar 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实现采集中国天气网未来7天天气
2014/10/15 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
Javascript实现的分页函数
2007/02/07 Javascript
JS解密入门 最终变量劫持
2008/06/25 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python内置函数dir详解
2015/04/14 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python File readlines() 使用方法
2018/03/19 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
机械电子工程毕业生自荐信
2013/11/23 职场文书
员工工作表扬信范文
2014/01/13 职场文书
秋季运动会加油词
2015/07/18 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
解决numpy和torch数据类型转化的问题
2021/05/23 Python
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python