Мне было интересно, есть ли какая-либо функция php «прямо из коробки», которая может кодировать все символы в строке, а не только пробелы.
$str="Encode All Characters Not Only The Spaces In Between";
echo rawurlencode($str);
Это возвращено:
Encode%20All%20Characters%20Not%20Only%20The%20Spaces%20In%20Between
Но я хочу закодировать всю строку, а не только пробелы.
Там нет такой вещи, но это легко написать:
function encode_all($str) {
$hex = unpack('H*', $str);
return preg_replace('~..~', '%$0', strtoupper($hex[1]));
}
$str = 'big ƒüßchen';
print_r(encode_all($str));
Других решений пока нет …