URL查询从加号变为零

How can i change plus to minus from url query for example: from ?search=some+words to ?search=some-words Because if i use + i get results only from the first word. Is there a way to do it ?

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

Excellent overview about the different possibilites including examples here.

It's in german, but the code is self-explaining.

<?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('+')));

results in

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) "+"

I would like to add that Apache's configs and mod_rewrite can affect this behaviour.