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

新浪提供了一个长短连接转换的API,我们可以使用它:具体实现:(新浪官方接口API:http://open.weibo.com/wiki/微博API)

<?php
/Sina App_Key
define('SINA_APPKEY', '网站申请的key');
function curlQuery($url) {//设置附加HTTP头$addHead = array("Content-type: application/json");//初始化curl,当然,你也可以用fsockopen代替$curl_obj = curl_init();//设置网址curl_setopt($curl_obj, CURLOPT_URL, $url);//附加Head内容curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead);//是否输出返回头信息curl_setopt($curl_obj, CURLOPT_HEADER, 0);//将curl_exec的结果返回curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);//设置超时时间curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15);//执行$result = curl_exec($curl_obj);//关闭curl回话curl_close($curl_obj);return $result;
}
//简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误
function filterUrl($url = '') {$url = trim(strtolower($url));$url = trim(preg_replace('/^http:\//', '', $url));if ($url == '')return false;elsereturn urlencode('http://' . $url);
}
//根据长网址获取短网址
function sinaShortenUrl($long_url) {//拼接请求地址,此地址你可以在官方的文档中查看到$url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url;//获取请求结果$result = curlQuery($url);//下面这行注释用于调试,//print_r($result);exit();//解析json$json = json_decode($result);//异常情况返回falseif (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '')return false;elsereturn $json[0]->url_short;
}
//根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数
function sinaExpandUrl($short_url) {//拼接请求地址,此地址你可以在官方的文档中查看到$url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url;//获取请求结果$result = curlQuery($url);//下面这行注释用于调试//print_r($result);exit();//解析json$json = json_decode($result);//异常情况返回falseif (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == '')return false;elsereturn $json[0]->url_long;
}
//要缩短的网址
$url = "cccc.com/a/index.php?a=1211"; //这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。
$url = filterUrl($url);  //对URL进行简单处理的方法
echo $short = sinaShortenUrl($url);      //根据传入的长网址生产短网址
echo "</br>";
echo $ulong = sinaExpandUrl($short);
?>

3271760578

转载于:https://www.cnblogs.com/nuanxin/p/10083739.html

PHP调用新浪API 生成短链接相关推荐

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

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

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

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

  3. 利用新浪API实现短网址生成

    新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. API有两种格式: http://api.t.sina.com.cn/short_url/shorten.j ...

  4. 基于新浪微博API生成短链接的几款在线工具

    需求背景 很多人在营销推广中都要使用到短链接,新浪短链接则是大家最先接触到的,服务也很稳定,所以需求量也很大.据不完全统计,大概每天有几十亿条t.cn短链接生成.如此巨大的数量,难道都是先登录新浪微博 ...

  5. 微博短链接生成 php,新浪微博API生成短链接

    通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...

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

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

  7. 新浪短链接 新浪t.cn短链接在线生成生成工具

    新浪很久之前提供了长链接转为短链接的API,可以把长链接转为t.cn/xxx这种格式的短链接.但是在今年9月的时候,新浪由于政策上的调整,将之前的接口关闭了! 很多小伙伴都遇到过新浪短链接的困惑吧,一 ...

  8. 短网址生成链接接口平台推荐--新浪T.CN短链接 腾讯URL短链接生成地址

    短连接好处: 1.简短.整洁: 2.减少URL字符占用空间,尤其是在写文章插入URL字符的时候: 3.利于SEO: 推荐几家短网址: 新浪短网址   需要申请app key. 新浪短网址目前来说是国内 ...

  9. java 生成短链接_java调用百度API生成短链接(一)

    短链接,顾名思义,用一个短的链接代替长而繁琐的真实链接 import net.sf.json.JSONObject; import org.apache.http.impl.client.Defaul ...

最新文章

  1. 丹佛大学计算机科学专业,丹佛大学
  2. 联机手写汉字识别,基于新型RNN网络结构的方法
  3. 2015 多校赛 第三场 1002 (hdu 5317)
  4. 【Elasticsearch】Elasticsearch 通信模块的分析
  5. 无法定位软件包 docker-ce_自媒体!做自媒体账号需要注意什么?定位很重要
  6. 如何应用Matlab plot画点
  7. C++ 验证DH算法
  8. axure rp9安装教程,axurerp9安装步骤
  9. Java常用类--java.lang.StringBuilder
  10. 读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
  11. 非对称加密下RSA在Java的简明教程
  12. 入行游戏建模,做场景建模师必备软件有哪些?有无发展前景
  13. 计算机设计大赛作品信息概要表模板
  14. 【计算机网络】第四部分 网络层(21) 地址映射、差错报告和多播
  15. MYSQL中如何创建存储过程和存储函数(上篇)
  16. 移动客户端与服务器通信方式一
  17. nightwatch 使用Expect进行浏览器元素校验 (三)
  18. 干货!如何在SCI论文中转述和总结别人的论文和成果
  19. 感冒发烧,病毒,细菌,抗生素?
  20. 用html制作表白网站制作 超炫酷的七夕情人节表白网页代码

热门文章

  1. 201521123017 《Java程序设计》第4周学习总结
  2. centos7 和centos 6的一些区别
  3. oracle insert两个关联表
  4. Trust is the most important thing to the team!
  5. Lession 14 Do you speak Englist?
  6. Vue实现组件props双向绑定解决方案
  7. 理解Javascritp中的引用
  8. DevOps的前世今生
  9. Linux下Gcc生成和使用静态库和动态库详解
  10. 原生希望原生JavaScript开篇