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

PHP通过调用新浪API生成t.cn格式短网址链接的方法详解

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-10 16:14:07 浏览: 评论:0 

这篇文章主要介绍了PHP通过调用新浪API生成t.cn格式短网址链接的方法,结合实例形式较为详细的分析了php调用新浪API生成t.cn格式短网址链接的具体操作步骤与相关注意事项,需要的朋友可以参考下。

本文实例讲述了PHP通过调用新浪API生成t.cn格式短网址链接的方法,分享给大家供大家参考,具体如下:

新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接。

API:

http://api.t.sina.com.cn/short_url/shorten.json (返回结果是JSON格式)

http://api.t.sina.com.cn/short_url/shorten.xml (返回结果是XML格式)

请求参数:

source 申请应用时分配的AppKey,调用接口时代表应用的唯一身份。

url_long 需要转换的长链接,需要URLencoded,最多不超过20个。

多个url参数需要使用如下方式请求:url_long=aaa&url_long=bbb

创建source方法

1.进入http://open.weibo.com/ ,选择菜单 微连接->网站接入。

2.点击立即接入,创建新应用,随便填写应用名称,点击创建。

3.创建成功后,AppKey就是source参数的值,可以用于请求创建短链接。

测试代码:

  1. <?php 
  2. $api = 'http://api.t.sina.com.cn/short_url/shorten.json'; // json 
  3. // $api = 'http://api.t.sina.com.cn/short_url/shorten.xml'; // xml 
  4. $source = '您申请的AppKey'
  5. $url_long = 'https://www.jb51.net/'
  6. $request_url = sprintf($api.'?source=%s&url_long=%s'$source$url_long); 
  7. $data = file_get_contents($request_url); 
  8. echo $data
  9. ?> 

返回JSON格式

  1.   { 
  2.     "url_short": "http:\/\/t.cn\/Rki0twp", 
  3.     "url_long": "http:\/\/www.cnblogs.com\/daxiangxm", 
  4.     "type": 0 
  5.   } 

返回XML格式

  1. <?xml version="1.0" encoding="UTF-8"?><urls> 
  2.   <url> 
  3.     <url_short>http://t.cn/RBclsRo</url_short> 
  4.     <url_long>https://www.jb51.net/</url_long> 
  5.     <type>0</type> 
  6.   </url></urls> 

生成的短链接为 http://t.cn/RBclsRo ,访问会跳转到 https://www.phpfensi.com/

完整调用方法如下:

  1. <?php/** 
  2.  * 调用新浪接口将长链接转为短链接 
  3.  * @param string    $source  申请应用的AppKey 
  4.  * @param array|string $url_long 长链接,支持多个转换(需要先执行urlencode) 
  5.  * @return array 
  6.  */function getSinaShortUrl($source$url_long){ 
  7.   // 参数检查 
  8.   if(emptyempty($source) || !$url_long){<br>    return false; 
  9.   }  // 参数处理,字符串转为数组 
  10.   if(!is_array($url_long)){<br>    $url_long = array($url_long); 
  11.   }  // 拼接url_long参数请求格式 
  12.   $url_param = array_map(function($value){ 
  13.     return '&url_long='.urlencode($value); 
  14.   }, $url_long);<br>  $url_param = implode(''$url_param); 
  15.   // 新浪生成短链接接口 
  16.   $api = 'http://api.t.sina.com.cn/short_url/shorten.json';  // 请求url 
  17.   $request_url = sprintf($api.'?source=%s%s'$source$url_param);  <br>  $result = array();  // 执行请求 
  18.   $ch = curl_init(); 
  19.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  20.   curl_setopt($ch, CURLOPT_URL, $request_url);  <br>  $data = curl_exec($ch);<br>  if($error=curl_errno($ch)){<br>  return false; 
  21.   } 
  22.   curl_close($ch);  $result = json_decode($data, true);  return $result
  23. //AppKey <br>$source = '您申请的AppKey';<br>// 单个链接转换 
  24. $url_long = 'https://www.phpfensi.com/';<br>$data = getSinaShortUrl($source$url_long); 
  25. print_r($data);<br>// 多个链接转换 
  26. $url_long = array('https://www.phpfensi.com/','https://www.phpfensi.com/','https://www.phpfensi.com/'); 
  27. $data = getSinaShortUrl($source$url_long); 
  28. print_r($data); 
  29. ?> 

输出:

  1. Array( 
  2.     [0] => Array 
  3.         ( 
  4.             [url_short] => http://t.cn/RBclsRo 
  5.             [url_long] => https://www.phpfensi.com/ 
  6.             [type] => 0 
  7.         ) 
  8. )Array( 
  9.     [0] => Array 
  10.         ( 
  11.             [url_short] => http://t.cn/RBclsRo 
  12.             [url_long] => https://www.phpfensi.com/ 
  13.             [type] => 0 
  14.         ) 
  15.     [1] => Array 
  16.         ( 
  17.             [url_short] => http://t.cn/RBclsRo 
  18.             [url_long] => https://www.phpfensi.com/ 
  19.             [type] => 0 
  20.         ) 
  21.     [2] => Array 
  22.         ( 
  23.             [url_short] => http://t.cn/RBclsRo 
  24.             [url_long] => https://www.phpfensi.com/ 
  25.             [type] => 0 
  26.         ) 

经测试,这个生成接口还是比较稳定的!

Tags: PHP调用新浪API PHP短网址

分享到: