1

例如,如何从 url 查询中将加号更改为减号:从 ?search=some+words 到 ?search=some-words 因为如果我使用 + 我只能从第一个单词中获得结果。有没有办法做到这一点?

4

2 回答 2

0

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

于 2012-09-27T15:15:25.263 回答
0

关于不同可能性的优秀概述,包括此处的示例。

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

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

于 2013-06-03T19:34:50.487 回答