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(3)
Oct 09 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
round robin权重轮循算法php实现代码
May 28 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
如何运行/调试你的PHP代码
Oct 23 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
PHP 获取目录下的图片并随机显示的代码
2009/12/28 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python脚本实现格式化css文件
2015/04/08 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
留守儿童工作方案
2014/06/02 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2014年科室工作总结
2014/11/20 职场文书
死亡诗社观后感
2015/06/05 职场文书