1. <?php
  2. header("Content-Type: text/html; charset=utf-8");
  3. $longurl;
  4. if(isset($_POST['longurl'])){
  5. $longurl = $_POST['longurl'];
  6. }else{
  7. die("没有post值进来");
  8. }
  9. //echo $longurl;
  10. $id = "你的AppID";
  11. $secret = "你的AppSecret";
  12. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$id."&secret=".$secret."";
  13. $token = getAccessToken($url);
  14. //echo $token;
  15. //你的长链接
  16. //$longurl = "http://www.baidu.com/";
  17. $data = '{"action":"long2short","long_url":"'.$longurl.'"}';
  18. $shorturl = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=".$token."";
  19. echo httpPost($shorturl,$data);
  20. //echo "你的长链接是:".$longurl;
  21. //echo "<br />";
  22. //生成的短链接
  23. //echo "生成的短链接是:".$shortArr['short_url'];
  24. //echo $shortArr;
  25. function getAccessToken($url) {
  26. // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
  27. $data = json_decode(file_get_contents("access_token.json"));
  28. if ($data->expire_time < time()) {
  29. // 如果是企业号用以下URL获取access_token
  30. $output = httpGet($url);
  31. $res = (array)json_decode($output);
  32. $access_token = $res['access_token'];
  33. if ($access_token) {
  34. $data->expire_time = time() + 7000;
  35. $data->access_token = $access_token;
  36. $fp = fopen("access_token.json", "w");
  37. fwrite($fp, json_encode($data));
  38. fclose($fp);
  39. //echo 'access_token.json读写了一次';
  40. }
  41. } else {
  42. $access_token = $data->access_token;
  43. }
  44. return $access_token;
  45. }
  46. function httpGet($url) {
  47. //echo "url = ".$url;
  48. $curl = curl_init();
  49. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  50. curl_setopt($curl, CURLOPT_TIMEOUT, 500);
  51. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  52. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  53. curl_setopt($curl, CURLOPT_URL, $url);
  54. $res = curl_exec($curl);
  55. curl_close($curl);
  56. return $res;
  57. }
  58. function httpPost($url,$data){
  59. $curl = curl_init();
  60. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  61. curl_setopt($curl, CURLOPT_TIMEOUT, 500);
  62. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  63. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  64. curl_setopt($curl, CURLOPT_URL, $url);
  65. curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
  66. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  67. $res = curl_exec($curl);
  68. curl_close($curl);
  69. return $res;
  70. }
  71. ?>

最新文章

  1. CentOS防火墙iptables的配置方法详解
  2. 【BZOJ3439】Kpm的MC密码 trie树+主席树
  3. 解决 SVN cleanup 任务中断导致无法 update
  4. 批量修改照片名称的shell脚本
  5. javascript设计模式-适配器模式
  6. AngularJS(17)-Angular小程序
  7. Super Object Toolkit (支持排序)
  8. uploadify在asp.net中的试用小结
  9. 基于内容的图像检索技(CBIR)术相术介绍
  10. 设计模式 - 命令模式(command pattern) 宏命令(macro command) 具体解释
  11. AI 人工智能 探索 (二)
  12. ARM开发软件ADS教程
  13. [LeetCode] Largest Triangle Area 最大的三角区域
  14. 微信小程序底部tabbar
  15. HDU1262-寻找素数对
  16. h5笔记02
  17. PHP原生处理select结果集的函数介绍
  18. vue的学习(常用功能)
  19. LeetCode题解之Split Linked List in Parts
  20. C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数

热门文章

  1. git的安装-环境变量配置
  2. springboot集成liquibase,h2数据库
  3. ThinkPHP官网瀑布流实现分享
  4. 常用代码块:创建httpclient 2
  5. Linux下源码安装redis,编译安装
  6. setdefault函数的用法及个人理解
  7. 玩转type类型(牛逼克拉斯 )
  8. 剑指offer 面试45题
  9. php 计算器的例子
  10. NetCDF 介绍