网站地图    收藏   

主页 > php专栏 > php应用 >

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

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

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

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

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

  1. <?php 
  2. //Sina App_Key 
  3. define('SINA_APPKEY''31641035'); 
  4.  
  5. function curlQuery($url) { 
  6.  //设置附加HTTP头 
  7.  $addHead = array
  8.  "Content-type: application/json" 
  9.  ); 
  10.  
  11.  //初始化curl,当然,你也可以用fsockopen代替 
  12.  $curl_obj = curl_init(); 
  13.  
  14.  //设置网址 
  15.  curl_setopt($curl_obj, CURLOPT_URL, $url); 
  16.  
  17.  //附加Head内容 
  18.  curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead); 
  19.  
  20.  //是否输出返回头信息 
  21.  curl_setopt($curl_obj, CURLOPT_HEADER, 0); 
  22.  
  23.  //将curl_exec的结果返回 
  24.  curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1); 
  25.  
  26.  //设置超时时间 
  27.  curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15); 
  28.  
  29.  //执行 
  30.  $result = curl_exec($curl_obj); 
  31.  
  32.  //关闭curl回话 
  33.  curl_close($curl_obj); 
  34.  
  35.  return $result
  36.  
  37. //简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误 
  38. function filterUrl($url = '') { 
  39.  $url = trim(strtolower($url)); 
  40.  $url = trim(preg_replace('/^http:///'''$url)); 
  41.  if ($url == ''
  42.  return false; 
  43.  else 
  44.  return urlencode('http://' . $url); 
  45.  
  46. //根据长网址获取短网址 
  47. function sinaShortenUrl($long_url) { 
  48.  //拼接请求地址,此地址你可以在官方的文档中查看到 
  49.  $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url
  50.  
  51.  //获取请求结果 
  52.  $result = curlQuery($url); 
  53.  
  54.  //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 
  55.  //print_r($result);exit(); 
  56.  
  57.  //解析json 
  58.  $json = json_decode($result); 
  59.  
  60.  //异常情况返回false 
  61.  if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == ''
  62.  return false; 
  63.  else 
  64.  return $json[0]->url_short; 
  65.  
  66. //根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数 
  67. function sinaExpandUrl($short_url) { 
  68.  //拼接请求地址,此地址你可以在官方的文档中查看到 
  69.  $url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url
  70.  
  71.  //获取请求结果 
  72.  $result = curlQuery($url); 
  73.  
  74.  //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 
  75.  //print_r($result);exit(); 
  76.  
  77.  //解析json 
  78.  $json = json_decode($result); 
  79.  
  80.  //异常情况返回false 
  81.  if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == ''
  82.  return false; 
  83.  else 
  84.  return $json[0]->url_long; 
  85. }//开源代码phpfensi.com 
  86.  
  87. //要缩短的网址 
  88. $url = $long//这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。 
  89.  
  90. $url = filterUrl($url); 
  91. $short = sinaShortenUrl($url); 
  92. $ulong = sinaExpandUrl($short); 
  93. ?> 

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论