PHP实现长链接转化成新浪短链接API代码分享

0
回复
3839
查看
[复制链接]

微信扫一扫 分享朋友圈

7848

主题

7931

帖子

7948

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7948

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2021-5-3 07:36:50 | 显示全部楼层 |阅读模式
短网址服务,可能很多朋友都已经不再陌生,特别是在微博应用中十分普遍,比如,当我们在腾讯、新浪微博发微博时有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。

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

首先需要申请一个新浪微博开放平台的appkey,申请地址是http://open.t.sina.com.cn/,不过审核相对严格而且比较慢。新浪微博短网址API接口有两种实现方式,第一种是原始的OAuth1.0的验证方式,比较简单,无需申请token,第二种是OAuth2.0的验证方式,这个需要access_token(虽然官方文档http://t.cn/8FgFoL8说可以像第一种那样直接通过appkey验证,但是测试不成功)。因此下面的示例采用的是第一种方式,即直接通过appkey验证。

新浪短网址在线生成代码php
  1. html代码<?php$http= strtolower(substr($_REQUEST["slurl"],0,7));$https=strtolower(substr($_REQUEST["slurl"],0,8));$slurl = $http=='http://'||$https=='https://' ? $_POST['slurl']:'http://'.$_POST['slurl'];function sina($type,$url){$key = '31641035'; /* 新浪APPKEY,请改成自己的 */ if($type){  $baseurl = 'http://api.t.sina.com.cn/short_url/shorten.json?source='.$key.'&url_long='.$url;}else{  $baseurl = 'http://api.t.sina.com.cn/short_url/expand.json?source='.$key.'&url_short='.$url;}$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$baseurl);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_TIMEOUT,15);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$strRes=curl_exec($ch);curl_close($ch);$arrResponse=json_decode($strRes,true);if(isset($arrResponse->error)||!isset($arrResponse[0]['url_long'])||$arrResponse[0]['url_long'] == '')return 0;if($type){        return $arrResponse[0]['url_short'];}else{        return $arrResponse[0]['url_long'];}}?>
复制代码
html代码
  1. <form method="post" name="commentform" onSubmit="return SLyz();">    <div class="dwz-ms">输入你要简化的URL网址:</div>    <textarea id="slurl" name="slurl"></textarea>    <button type="submit"/>生成短网址<<span class="hljs-regexp">/button>   </form
复制代码
获取代码
  1. <?php if($_POST['slurl']){?>原网址:<?php echo $_POST['slurl'].'';}?><?php if(sina(1,$slurl)!='0'){?>短网址:<?php echo sina(1,$slurl);?><?php }?>
复制代码


模板人源码·版权声明


本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
      本网站所提供的信息,只供参考之用学习交流,切勿用作非法用途。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。        唯一网址: https://www.mubanren.com/thread-1693-1-1.html
温馨提示:充值398元VIP会员立享全站资源30天免费下载 如有问题可以直接联系客服
                  金币充值    VIP购买    投诉举报    失效链接反馈
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
3、免责声明:本附件资源转载自互联网,转存百度网盘,若有侵权请速联系客服,我们将会在24小时内删除,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

400-0000-365

周一至周五 9:30-18:00

北京市大兴区景园北街2号02号

  • 关注微信账号

  • 关注微博账号