2019-01-19 16:08:44 537次浏览 2条回答 0 悬赏 17 金钱
return str_replace("*", "%2A", str_replace("+", "%20", urlencode($str)));

是它,是它,就是它,貌似过滤啥还是替换啥的,大佬明示

亿速云

最佳答案

  • 刘师傅 发布于 2019-01-19 18:15 举报

    功能上就是替换,过滤。然后业务上不清楚

    1 条回复
    回复于 2019-01-19 19:57 回复

    谢谢大佬。打印出来是转换斜杠,和 & 连接符的
    斜杠转换 %2A& 转换 %20

  • 回答于 2019-01-20 19:06 举报

    由于历史原因,php 的 urlencode 函数会把空格编码成 + 而不是 %20,这一点与其它语言不同,也不符合一个什么 RFC 的规范,所以 这里做了一步替换。但其实 php 中另有一个 rawurlencode 函数,这个函数 与 urlencode 函数的唯一区别就是 它会把 空格 编码成 %20
    至于 * ,它肯定不会被包含在 urlencode 的返回结果中的,它一定会被编码成 %2A ,这里的替换是 多此一举。
    综上,以上代码 完全可以替换为:
    return rawurlencode($str);

    2 条回复
    回复于 2019-01-21 20:30 回复

    大佬说的这么胸有成竹,我反正是相信了,谢谢大佬百忙之中的回复

    回复于 2019-01-26 15:13 回复

    楼上说的正确, 你可以试试rawurlencode这个

您需要登录后才可以回答。登录 | 立即注册
朕的大清完了
主管

朕的大清完了

注册时间:2018-11-15
最后登录:2019-06-13
在线时长:20小时46分
  • 粉丝2
  • 金钱469
  • 威望10
  • 积分769

热门问题