php专区

 首页 > php专区 > PHP应用 > 常用功能 > php实现新浪短链接调用API代码 - php高级应用

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

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

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

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

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

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

分享到:
PHPEXCEL导入excel表格生成数组 - php高...
PHPEXCEL导入excel表格生成数组 本方法使用PHPEXCEL插件读取excel文件转化为数组了,后期还有没有完成的我们可以把转换成数组之后再保存到mysql数据库这个就非常的方便了,代码如下:  
php实现购物车程序代码 - php高级应用
php实现购物车程序代码 购物车是现在电商开发者必须要做的一个功能了,下面我来给大家整理两个可用于电商网站的简单购物车程序代码,有兴趣的同学不防进入参考一下. 例子1:最近在写一个电子商务的网站,在做购物车的时候才发现php里面没有map这种数据结构,我们不能简单的通过一个hashmap来实现...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……