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函数 serialize()和unserialize()
Feb 04 PHP
php防注入及开发安全详细解析
Aug 09 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
php中file_exists函数使用详解
May 08 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
php实现数组重复数字统计实例
Sep 30 PHP
php函数式编程简单示例
Aug 08 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
php框架知识点的整理和补充
Mar 01 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
js实现缓动动画
2020/11/25 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
基于django传递数据到后端的例子
2019/08/16 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
奥地利网上书店:Weltbild
2017/07/14 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
女大学生自我鉴定
2013/12/09 职场文书
运动会入场解说词
2014/02/07 职场文书
幼儿园小班评语
2014/04/18 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技