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

本文阅读 1 分钟
首页 PHP笔记 正文
  1. <!--生成短连接-->
  2. <?php
  3. /**
  4. * 调用新浪接口将长链接转为短链接
  5. * @param string $source 申请应用的AppKey
  6. * @param array|string $url_long 长链接,支持多个转换(需要先执行urlencode)
  7. * @return array
  8. */
  9. function getSinaShortUrl($source, $url_long)
  10. {
  11. // 参数检查
  12. if (empty($source) || !$url_long) {
  13. return false;
  14. }
  15. // 参数处理,字符串转为数组
  16. if (!is_array($url_long)) {
  17. $url_long = array($url_long);
  18. }
  19. // 拼接url_long参数请求格式
  20. $url_param = array_map(function ($value) {
  21. return '&url_long=' . urlencode($value);
  22. }, $url_long);
  23. $url_param = implode('', $url_param);
  24. // 新浪生成短链接接口
  25. $api = 'http://api.t.sina.com.cn/short_url/shorten.json';
  26. // 请求url
  27. $request_url = sprintf($api . '?source=%s%s', $source, $url_param);
  28. $result = array();
  29. // 执行请求
  30. $ch = curl_init();
  31. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  32. curl_setopt($ch, CURLOPT_URL, $request_url);
  33. $data = curl_exec($ch);
  34. if ($error = curl_errno($ch)) {
  35. return false;
  36. }
  37. curl_close($ch);
  38. $result = json_decode($data, true);
  39. return $result;
  40. }
  41. // AppKey
  42. $source = '31641035';
  43. // 单个链接转换
  44. $url_long = 'https://url';//地址
  45. //var_dump($url_long);
  46. $data = getSinaShortUrl($source, $url_long);
  47. ?>
  48. <!--生成二维码-->
  49. <?php
  50. include '../code/phpqrcode.php';
  51. //二维码内容
  52. $value = '';//地址
  53. //容错级别
  54. $errorCorrectionLevel = 'L';
  55. //生成图片大小
  56. $matrixPointSize = 5;
  57. //生成二维码图片
  58. QRcode::png($value, '../../img/code/qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);
  59. //$logo = '../../img/logo/1.png';//准备好的logo图片
  60. $logo = '../../img/logo/' . $shlogo;
  61. //var_dump($logo);
  62. $QR = '../../img/code/qrcode.png'; //已经生成的原始二维码图
  63. if ($logo !== FALSE) {
  64. $QR = imagecreatefromstring(file_get_contents($QR));
  65. $logo = imagecreatefromstring(file_get_contents($logo));
  66. $QR_width = imagesx($QR); //二维码图片宽度
  67. $QR_height = imagesy($QR); //二维码图片高度
  68. $logo_width = imagesx($logo); //logo图片宽度
  69. $logo_height = imagesy($logo); //logo图片高度
  70. $logo_qr_width = $QR_width / 4;
  71. $scale = $logo_width / $logo_qr_width;
  72. $logo_qr_height = $logo_height / $scale;
  73. $from_width = ($QR_width - $logo_qr_width) / 2;
  74. //重新组合图片并调整大小
  75. imagecopyresampled(
  76. $QR,
  77. $logo,
  78. $from_width,
  79. $from_width,
  80. 0,
  81. 0,
  82. $logo_qr_width,
  83. $logo_qr_height,
  84. $logo_width,
  85. $logo_height
  86. );
  87. }
  88. //输出图片
  89. imagepng($QR, '../../img/code/code_img.png');
  90. //echo '<img src="code_img.png">';
  91. ?>
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

php二维数组按字段排序
« 上一篇 07-30
php根据时间返回一周开始/结束时间
下一篇 » 07-30

发表评论

惪特博客
  • 文章总数:
    18497 篇
  • 评论总数:
    53345 条
  • 标签总数:
    8873 个
  • 总浏览量:
    23096044 次
  • 最后更新:
    3月27日

最多点赞

随便看看

标签TAG