HTTP Build Abfrage mit PHP_QUERY_RFC3986 vor PHP 5.4

7

Ich dachte, ich könnte die einfache http_build_query verwenden, um einige GET-Parameter aus einem Array zu codieren, aber scheinbar wurde die enc_type in PHP 5.4 hinzugefügt. Leider bin ich auf PHP 5.3.10.

Das Problem ist, dass ich die Parameter, die mit Leerzeichen codiert sind, als %20 und nicht als + brauche. Irgendwelche guten, schnellen Lösungen, um die Parameter richtig zu kodieren, ohne http_build_query ?

zu benutzen     
Svish 13.02.2012, 17:39
quelle

6 Antworten

16

Da die URL codiert ist, wenn http_build_query zurückgibt, so dass + immer und nur Leerzeichen sind, können Sie sie einfach mit str_replace verketten:

%Vor%

Wenn Sie auch ~ nicht codieren wollen:

%Vor%     
netcoder 13.02.2012, 17:46
quelle
3

Sie können de PHP_QUERY_RFC3986 Flag verwenden.

%Vor%     
Rodrigo Azevedo 25.09.2015 20:32
quelle
1

Sie können die Abfragezeichenfolge auch über die Funktion rawurlencode übergeben. Verfügbar in 5.3 kodiert für RFC 3986:

Ссылка

    
Shane 11.07.2012 05:23
quelle
1

Etwas prägnantere Version von @ cwds Antwort.

%Vor%     
SpiffyJr 04.06.2013 15:23
quelle
0

Hier ist mein Versuch einer Funktion für PHP 5.3, eine RFC 3986 Query-Zeichenfolge zu erstellen.

%Vor%     
cwd 05.02.2013 17:36
quelle
-1
%Vor%     
beebop 02.08.2016 10:46
quelle

Tags und Links