【问题标题】:URL query change from plus to minusURL 查询从加号变为减号
【发布时间】:2012-09-27 14:55:55
【问题描述】:

如何将 url 查询中的加号改为减号,例如: 从 ?搜索=一些+单词 到 ?search=some-words 因为如果我使用 + 我只能从第一个单词中得到结果。 有什么办法吗?

【问题讨论】:

  • 这取决于你想在哪里进行更改:PHP/htaccess...
  • 我发现 $search = rawurlencode(strip_tags(str_replace("_", " ", $_GET['search'])));

标签: php url query-string


【解决方案1】:

$search = rawurlencode(strip_tags(str_replace("_", " ", $_GET['search'])));

【讨论】:

    【解决方案2】:

    关于不同可能性的精彩概述,包括示例here。

    它是德文的,但代码是不言自明的。

    <?php
    
    $_GET['parameter1'] = urlencode('Dies ist ein längerer Beispielstring');
    var_dump($_GET['parameter1']);
    var_dump(urldecode($_GET['parameter1']));
    
    $_GET['parameter2'] = rawurlencode('Dies ist ein längerer Beispielstring');
    var_dump($_GET['parameter2']);
    var_dump(rawurldecode($_GET['parameter2']));
    
    // urlencode() macht aus dem Leerzeichen ein +
    // rawurlencode() hingegen ein %20
    var_dump(urlencode(' '), urldecode(urlencode(' ')));
    var_dump(rawurlencode(' '), rawurldecode(rawurlencode(' ')));
    
    var_dump(urlencode('+'), urldecode(urlencode('+')));
    var_dump(rawurlencode('+'), rawurldecode(rawurlencode('+')));
    

    结果

    string(41) "Dies+ist+ein+l%C3%A4ngerer+Beispielstring"
    string(37) "Dies ist ein längerer Beispielstring"
    string(49) "Dies%20ist%20ein%20l%C3%A4ngerer%20Beispielstring"
    string(37) "Dies ist ein längerer Beispielstring"
    string(1) "+"
    string(1) " "
    string(3) "%20"
    string(1) " "
    string(3) "%2B"
    string(1) "+"
    string(3) "%2B"
    string(1) "+"
    

    我想补充一点,Apache 的配置和 mod_rewrite 会影响这种行为。

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2015-05-01
      • 2021-07-30
      相关资源
      最近更新 更多