本文实例讲述了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参数的值,可以用于请求创建短链接。

测试代码:

$api = 'http://api.t.sina.com.cn/short_url/shorten.json'; // json

// $api = 'http://api.t.sina.com.cn/short_url/shorten.xml'; // xml

$source = '您申请的AppKey';

$url_long = 'https://www.zyiz.net/';

$request_url = sprintf($api.'?source=%s&url_long=%s', $source, $url_long);

$data = file_get_contents($request_url);

echo $data;

?>

返回JSON格式

[

{

"url_short": "http:\/\/t.cn\/Rki0twp",

"url_long": "http:\/\/www.cnblogs.com\/daxiangxm",

"type": 0

}

]

返回XML格式

http://t.cn/RBclsRo

https://www.zyiz.net/

0

完整调用方法如下:

* 调用新浪接口将长链接转为短链接

* @param string $source 申请应用的AppKey

* @param array|string $url_long 长链接,支持多个转换(需要先执行urlencode)

* @return array

*/function getSinaShortUrl($source, $url_long){

// 参数检查

if(empty($source) || !$url_long){
return false;

} // 参数处理,字符串转为数组

if(!is_array($url_long)){
$url_long = array($url_long);

} // 拼接url_long参数请求格式

$url_param = array_map(function($value){

return '&url_long='.urlencode($value);

}, $url_long);
$url_param = implode('', $url_param);

// 新浪生成短链接接口

$api = 'http://api.t.sina.com.cn/short_url/shorten.json'; // 请求url

$request_url = sprintf($api.'?source=%s%s', $source, $url_param);
$result = array(); // 执行请求

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_URL, $request_url);
  $data = curl_exec($ch);
if($error=curl_errno($ch)){
return false;

}

curl_close($ch); $result = json_decode($data, true); return $result;

}

//AppKey
$source = '您申请的AppKey';
// 单个链接转换

$url_long = 'https://www.zyiz.net/';
$data = getSinaShortUrl($source, $url_long);

print_r($data);
// 多个链接转换

$url_long = array('https://www.zyiz.net/','https://www.zyiz.net/','https://www.zyiz.net/');

$data = getSinaShortUrl($source, $url_long);

print_r($data);

?>

输出:

Array(

[0] => Array

(

[url_short] => http://t.cn/RBclsRo

[url_long] => https://www.zyiz.net/

[type] => 0

)

)Array(

[0] => Array

(

[url_short] => http://t.cn/RBclsRo

[url_long] => https://www.zyiz.net/

[type] => 0

)

[1] => Array

(

[url_short] => http://t.cn/RBclsRo

[url_long] => https://www.zyiz.net/

[type] => 0

)

[2] => Array

(

[url_short] => http://t.cn/RBclsRo

[url_long] => https://www.zyiz.net/

[type] => 0

)

)

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

PS:这里为大家推荐一款本站短网址生成工具(也是使用的第三方API接口生成的短网址)

希望本文所述对大家PHP程序设计有所帮助。

api.php t.cn,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解相关推荐

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

    本文实例讲述了PHP通过调用新浪API生成t.cn格式短网址链接的方法.分享给大家供大家参考,具体如下: 新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. A ...

  2. php查询ip归属地api接口_【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地...

    本文与<[Servlet]Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地>(点击打开链接)为姊妹篇,只是后端编程语言换成了php. 做出同样的效果,打开页面,得 ...

  3. PHP调用新浪API 生成短链接

    我们经常收到类似于这样的短信(如下图),发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实 ...

  4. C#长链接转短链接(调用新浪api)

     /// <summary>  /// 长链接转短链接  /// </summary>  /// <param name="longUrl"> ...

  5. php新浪api,php调用新浪短链接API的方法,php调用新浪api_PHP教程

    php调用新浪短链接API的方法,php调用新浪api 本文实例讲述了php调用新浪短链接API的方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: //Sina App_Key def ...

  6. 新浪短链api java_php调用新浪短链接API的方法

    本文实例讲述了php调用新浪短链接API的方法.分享给大家供大家参考.具体方法如下: //Sina App_Key define('SINA_APPKEY', '31641035'); functio ...

  7. 利用新浪API批量生成t.cn 短链接的接口有哪些?

    新浪提供了长链接转为短链接的API,可以把长链接转为t.cn/xxx这种格式的短链接.短链接对于一些商家来说使用价值非常大,故整理了6个较为好用的t.cn短链接批量生成接口. 1.快鸟短网址 随着移动 ...

  8. php查询ip归属地api接口_php调用新浪接口查询ip获取地理位置(ip归属地查询)

    php调用新浪接口查询ip获取地理位置(ip归属地查询) 发布于 2014-11-17 08:35:58 | 115 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: ...

  9. php调用新浪短链接API转短链接

    调用新浪短链api,长链接可转为http://t.cn/RX7mLZh这种t.cn短链,同时可转回原链接! //新浪的App_Key const SINAAPPKEY = '291**161014'; ...

最新文章

  1. R语言ggplot2可视化:在ggplot2中将图例(legend)移到图内、自定义图例所处的位置、自定义图例背景、图例所处边框的颜色
  2. JavaScript学习(八)
  3. boost::container模块实现检查相等的容器的测试程序
  4. Harfbuzz API 基本用法
  5. js find的用法_React常用库Immutable.js常用API
  6. Mr.J--重拾Ajax(二)-- 本地服务器配置测试
  7. linux清理缓存_自动清理linux系统内存和Cache方法
  8. c++ 判断数学表达式有效性_2009年高考数学上海卷难度如何?独特的题型设计,让你耳目一新...
  9. 如何在macOS中关闭优化电池充电功能?
  10. 【JS-05】javascript检测ie版本
  11. onlyoffice开发java,利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中
  12. 随笔—醒悟篇之考研调剂
  13. ads1256 + STM32 + CubeMX 软件开发备忘
  14. mysql week weekofyear_MySQL WEEKOFYEAR()用法及代码示例
  15. Android 8.1 DisplayPowerController(五) 自动调节亮度(2)——算法
  16. 添加离线地图服务(搭建内网地图服务)
  17. linux下挂载新的磁盘
  18. R语言 - 逻辑回归
  19. DSF框架使用(DAO、序列化、注解、服务接口、服务代理)
  20. 题目:中国有句俗话叫“三天打渔,两天晒网”,某人从2010年1月1日期开始“三天打渔,两天晒网” 问这个人在以后的某一天是“打渔”还是“晒网”。用C或着C++语言实现程序解决问题。

热门文章

  1. 2022-2028年中国高纯锑行业市场全景研究及发展趋势分析报告
  2. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
  3. python -m参数
  4. 并发 IO多路复用 select 非asyncio
  5. LeetCode简单题之公平的糖果交换
  6. IP 公司与GPU IP
  7. 自然语言推理和数据集
  8. LCD: 2D-3D匹配算法
  9. Mask-RCNN技术解析
  10. 视觉SLAM技术应用