URL查询从加号变为零

时间:2012-09-27 14:55:55

标签: php url query-string

如何从url查询中将plus更改为减号,例如: 从 ?搜索=一些词+ 至 ?搜索=一些字 因为如果我使用+ i只从第一个单词得到结果。 有办法吗?

2 个答案:

答案 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会影响这种行为。