当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-26 11:09:23 浏览: 评论:0 

前面写过了一篇文章是图片反盗链的,我自己弄得单独的页面就采用了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当然你如果需要使用你自己的您也可以自己去替换,至于用法就看你了,镶入到其他程序使用啊?单独做个生成短连接的页面都不管我的事啊,使用方法不多说,最近比较懒.

Tags: php新浪短链接 php调用API代码

分享到: