Что это за кодировка и как я могу кодировать строку для него в PHP?

У меня есть такой вклад:

$input = 'GFL/R&D/50/67289';

Я пытаюсь добраться до этого:

GFL$2fR$26D$2f50$2f67289

Пока что самое близкое, что я сделал, это:

echo filter_var($input, FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)

который производит:

GFL%2FR%26D%2F50%2F67289

Как я могу получить от заданного ввода до желаемого результата и в какой кодировке результат?

Кстати, обратите внимание, чувствительность к регистру происходит там. $2f требуется, а не $2F,

1

Решение

Это сделает трюк: url-encode, затем строчные буквы кодированных последовательностей и своп % за $ с обратным вызовом preg (PHP PCRE не поддерживает модификаторы смещения регистра):

$input = 'GFL/R&D/50/67289';
echo preg_replace_callback('/(%)([0-9A-F]{2})/', function ($m) {
return '$' . strtolower($m[2]);
}, urlencode($input));

выход:

GFL$2fR$26D$2f50$2f67289
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector