帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

php实现新浪短链接调用API代码 - php高级应用

php实现新浪短链接调用API代码

前面写过了一篇文章是图片反盗链的,我自己弄得单独的页面就采用了sina的短连接,对于短连接来说还是方便的,地址太长占地方,下面分享源码,有注释,非原创,代码如下:

<?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; 
} //开源代码phpfensi.com  
 
//要缩短的网址  
$url  =  $long ;  //这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。  
 
$url  = filterUrl( $url ); 
$short  = sinaShortenUrl( $url ); 
$ulong  = sinaExpandUrl( $short ); 
?> 

本文中短连接已经附带的一个appkey不用再自己申请KEY当然你如果需要使用你自己的您也可以自己去替换,至于用法就看你了,镶入到其他程序使用啊?单独做个生成短连接的页面都不管我的事啊,使用方法不多说,最近比较懒.

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php实现新浪短链接调用API代码 - php高级应用》
文章链接:https://www.admin99.cn/8252
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册