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. //简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误 
  37. function filterUrl($url = '') { 
  38.  $url = trim(strtolower($url)); 
  39.  $url = trim(preg_replace('/^http:///'''$url)); 
  40.  if ($url == ''
  41.  return false; 
  42.  else 
  43.  return urlencode('http://' . $url); 
  44.  
  45. //根据长网址获取短网址 
  46. function sinaShortenUrl($long_url) { 
  47.  //拼接请求地址,此地址你可以在官方的文档中查看到 
  48.  $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url
  49.  
  50.  //获取请求结果 
  51.  $result = curlQuery($url); 
  52.  
  53.  //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 
  54.  //print_r($result);exit(); 
  55.  
  56.  //解析json 
  57.  $json = json_decode($result); 
  58.  
  59.  //异常情况返回false 
  60.  if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == ''
  61.  return false; 
  62.  else 
  63.  return $json[0]->url_short; 
  64.  
  65. //根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数 
  66. function sinaExpandUrl($short_url) { 
  67.  //拼接请求地址,此地址你可以在官方的文档中查看到 
  68.  $url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url
  69.  
  70.  //获取请求结果 
  71.  $result = curlQuery($url); 
  72.  
  73.  //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 
  74.  //print_r($result);exit(); 
  75.  
  76.  //解析json 
  77.  $json = json_decode($result); 
  78.  
  79.  //异常情况返回false 
  80.  if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == ''
  81.  return false; 
  82.  else 
  83.  return $json[0]->url_long; 
  84. }//开源代码phpfensi.com 
  85.  
  86. //要缩短的网址 
  87. $url = $long//这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。 
  88.  
  89. $url = filterUrl($url); 
  90. $short = sinaShortenUrl($url); 
  91. $ulong = sinaExpandUrl($short); 
  92. ?> 

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

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