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 fread()使用技巧
Jan 22 PHP
php 上传功能实例代码
Apr 13 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php输入流php://input使用浅析
Sep 02 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
ThinkPHP路由机制简介
Mar 23 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
tp5递归 无限级分类详解
Oct 18 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php include和require的区别深入解析
2013/06/17 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
php-msf源码详解
2017/12/25 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
限制复选框的最大可选数
2006/07/01 Javascript
jQuery MD5加密实现代码
2010/03/15 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
学习python处理python编码问题
2011/03/13 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python使用matplotlib绘制热图
2018/11/07 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
python多线程并发及测试框架案例
2019/10/15 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
逃课上网检讨书
2014/02/20 职场文书
投资意向协议书
2015/01/29 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
详解Go与PHP的语法对比
2021/05/29 PHP
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python