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?
Odpowiedzi:
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 .
Uważam, że jeśli potrzebujesz skorzystać z tego %20
wariantu, możesz użyć rawurlencode()
.