如何从url查询中将plus更改为减号,例如: 从 ?搜索=一些词+ 至 ?搜索=一些字 因为如果我使用+ i只从第一个单词得到结果。 有办法吗?
答案 0 :(得分:0)
$ search = rawurlencode(strip_tags(str_replace(“_”,“”,$ _GET ['search'])));
答案 1 :(得分:0)
关于不同可能性的优秀概述,包括示例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会影响这种行为。