Jak mogę zamienić spacje w ciągu na %20
?
Oto moja próba:
$str = "What happens here?";
echo urlencode($str);
Wynik to "What+happens+here%3F"
, więc spacje nie są reprezentowane jako %20
.
Co ja robię źle?
rawurlencode
Zamiast tego użyj funkcji.
Znak plus to historyczne kodowanie znaku spacji w parametrach adresu URL, zgodnie z opisem w pomocy do
urlencode()
funkcji.Ta sama strona zawiera odpowiedź, której potrzebujesz - użyj
rawurlencode()
zamiast tego, aby uzyskać kodowanie zgodne z RFC 3986 .źródło
Uważam, że jeśli potrzebujesz skorzystać z tego
%20
wariantu, możesz użyćrawurlencode()
.źródło