【问题标题】:Removing plus sign from the query string php从查询字符串 php 中删除加号
【发布时间】:2012-12-29 05:32:08
【问题描述】:

当用户在输入栏中输入空格或什么都没有时,加号 + 仍会传递给我的 php 后端。我想删除单词前后的所有加号(例如,从“+++school++”返回“学校”)。我看到 php 有一些不错的功能,比如 strip_tag,但我不确定在这种情况下我应该使用什么.或者有没有办法配置它(也许通过javascript?),这样那些无意义的空格/+甚至不会进入查询字符串?

【问题讨论】:

    标签: php javascript regex preg-match


    【解决方案1】:

    你可以使用:

    $input = trim(urldecode($input));
    

    其中 $input 是 post 参数之一,例如:$input = $_POST["query"]; // 如果查询是 POST 参数。

    编辑:使用 urldecode 的另一个优点是它可以处理所有其他已编码的非字母数字字符。

    发件人:http://php.net/manual/en/function.urldecode.php

    【讨论】:

    • +1 这是正确答案。尽管您可能希望 trim(urldecode($input)) 删除多余的空格。
    • -1 查询字符串来自$_GET,它已经处理了url解码。
    • @Eric 这就是它应该被访问的方式,但似乎 OP 为获取查询字符串所做的一切都没有解码。
    • @Eric,是什么让你认为 OP 开始使用 GET?
    • @ajacian81:“查询字符串”。 From wikipedia - '从技术上讲,只有当表单提交方式为GET时,表单内容才会被编码为查询字符串。'
    【解决方案2】:

    查询字符串中的+ 变成$_GET 中的空格。您需要做的就是修剪前导和尾随空格。

    trim($_GET['param'])
    

    【讨论】:

      【解决方案3】:
      $str = '++school++';
      return trim(urldecode($str)
      

      【讨论】:

      • @ajacian81 OP 想从他的输入中删除所有+,如果我没记错的话,urldecode 将它简单地解码为空间..显然混乱的 OP 输入
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 2015-11-28
      • 2021-11-02
      • 2015-06-25
      • 2012-03-09
      • 2017-06-01
      相关资源
      最近更新 更多