在URL中使用另一个url作为参数时会被&截断的问题

下午帮同事写一个url转二维码的小工具时,发生标题中描述的问题。比如:输入的url是http://www.example.dev/name=user&code=2000,转换为二维码后,扫描得到的url却是http://www.example.dev/name=user,&后的部分没有正确转换。问题很明显,作为参数的url中的&后的被解析为其他参数了。

前台请求的完整url是"http://{domain}/tools/getQrCode.php?url=http://www.example.dev/name=user&code=2000,后台从$_GET['url']中取得却是http://www.example.dev/name=user,另一部分成了$_GET['code']了。

解决方法其实很简单,给作为参数的url做一下urlencode就好了。js中可以直接使用encodeURIComponent函数为url编码。

代码示例如下:

  • 后台php
<?php$url = isset($_GET['url']) ? $_GET['url'] : '';
if (empty($url)) {echo '<div class="alert alert-danger" role="alert">请输入url!</div>';exit(1);
}
echo genQrCode($url);
exit(0);function genQrCode($url=''){require_once 'libs/phpqrcode.php';$value = $url;                  //二维码内容$errorCorrectionLevel = 'L';    //容错级别$matrixPointSize = 5;           //生成图片大小//生成二维码图片$filename =  '/../tmp/'.microtime().'.png';QRcode::png($value, dirname( __FILE__ ) . $filename, $errorCorrectionLevel, $matrixPointSize, 2);return '<img src="tmp'. $filename . '"><br><p>' . $url . '</p>';
}
  • 前台html和js
之前的部分略<div class="col-md-6 col-lg-6"><div class="panel panel-warning"><div class="panel-heading">二维码转换</div><div class="panel-body"><form><div class="form-group"><label for="url">url</label><input type="text" class="form-control" id="url" placeholder="url"></div><button type="button" id="getQr" class="btn btn-primary">生成二维码</button><button type="reset" class="btn btn-success">清除url</button></form></div><div id="qrdiv" class="panel-body" style="word-break: break-all;"></div></div></div></div>
</div>
<script type="text/javascript">$($("#getQr").click(function () {$qrstr=$("#url").val();$url = "tools/getQrCode.php?url=" + encodeURIComponent($qrstr);$.get($url, function (result) {$("#qrdiv").html(result);});}));
</script>
</body>
</html>

PS:样式部分使用的bootstrap3
以上

转载于:https://www.cnblogs.com/colbertwong/p/8626394.html

在URL中使用另一个url作为参数时会被``截断的问题相关推荐

  1. url 保持不变php,thinkphp3.2.3如何只改变地址url中的某一个分隔符,其它保持不变...

    今天教大家一个关于使用thinkphp3.2.3改变只改变地址url中的某一个分隔符的方法,首先大家来看看这个地址! 它的原始地址应该是/Home/Index/index/page/2.html,那我 ...

  2. url中隐藏php后缀,url中如何隐藏.php

    url中隐藏".php"的方法:首先找到并打开"nginx.conf"配置文件:然后添加内容"location / {ttry_files $uri ...

  3. servlet和action中获取URL中的汉字(解决URL中汉字为乱码的问题) .

    2019独角兽企业重金招聘Python工程师标准>>> 最近在项目中又遇到一个小问题,通过HttpURLConnection来传递汉字时,服务端获取汉字参数时都为乱码,以下分别为在s ...

  4. html的url中写什么意思,url的含义是什么?

    url的含义是:信息资源在网上的位置和如何访问的统一的描述方法. 统一资源定位符(UniformResourceLocator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...

  5. php获取等于符号后面的参数,php获取URL中带#号等特殊符号参数的解决方法

    例如下面的PHP代码: echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.c ...

  6. php跳转隐藏url参数,.htaccess从URL中删除index.php并隐藏参数键

    我有以下网址 www.example.com/index.php?tag= xxx 我想使用.htaccess进行如下操作 www.example.com/xxx 我用这段代码完成了: Options ...

  7. 5 判断数据是否存在_Trie树实现:100亿URL中判断某个URL是否存在

    之前在头条看到一篇<如何在100亿URL中判断某一个URL是否存在>,里面介绍的是使用布隆算法bloomfilter,我们也知道bloomfilter只能保证URL不存在. 在这里介绍一个 ...

  8. android 获取url中的参数,验证邮箱格式,截取字符串中键值对的值,String的字节长度,去空格,替换字符

    String ss="hello"; byte[] buff=ss.getBytes(); int f=buff.length; System.out.println(f); 字节 ...

  9. java 特殊字符过滤器_java处理url中的特殊字符

    java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...

最新文章

  1. LeetCode简单题之两数之和 IV - 输入 BST
  2. 一文详尽支付宝系统架构(附内部架构图)
  3. python字符串endswith,Python字符串| 具有示例的endswith()方法
  4. 初学者如何学习Vim
  5. Design verification经验总结
  6. CF993E:Nikita and Order Statistics(FFT)
  7. 23种经典设计模式的java实现_3_桥接模式
  8. python密码传参有特殊字符如何解决_python生成带特殊字符的密码
  9. 2019年四月计算机语言排名,2019编程语言排行榜_编程语言排行榜2019年4月 TIOBE编程语言排行榜2019年最...
  10. WUSTOJ 1299: 结点选择(Java)
  11. 2019-03-18-算法-进化(反转链表)
  12. 判断一个指针有没有free_Free Code Camp的每个人现在都有一个档案袋
  13. 怎么用PHP修改文字大小,如何利用PHP和CSS改变网页文字大小
  14. python tclerror_TclError:错误的窗口路径名(Python)
  15. Openstack api 学习文档 restclient使用文档
  16. suse 内核编译安装_Linux内核编译与安装
  17. android toast居中显示_Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明...
  18. quadro显卡好在哪
  19. vue项目不被百度收录怎么办、seo优化问题
  20. 解决双显卡无法安装Ubuntu问题(转载)

热门文章

  1. 【排序算法】插入、选择、堆排、快排、归并、计数
  2. 华为仿苹果字体_苹果手机和华为手机,同样的网络下为何我的手机网速这么差?...
  3. 水泵怎么做_燃气壁挂炉初次调试,要怎么做才好?
  4. openwrt php 吃内存,ipkg, opkg 与 openWrt
  5. php 实现application,PHP中实现ASP中的Application 功能
  6. 4a怎么打开sqlserver_百元级别荣耀路由X3和小米路由4A,哪款真的香?
  7. btoa java_javascript atob()函数和 btoa()函数-Base64的编码与解码-Go语言中文社区
  8. dubbo日志关闭_不可忽视的Dubbo线程池避坑指南
  9. python串口连续数据_Python代码从串口连续接收可变数据
  10. python相关性分析特征过滤_Python相关性分析