Возьмите выход gzdeflate()
, например:Скопируйте/вставьте многобайтную строку из gzdeflate?
$a = gzdeflate('..........');
echo $a . "\n" . strlen($a);
я получаю выход, как:
?Ӄ
5
Так я получил строку 5 байт, который содержит символы, которые не могут быть выведенные должным образом, и, следовательно, невозможно скопировать и вставить.
Очевидно, echo gzinflate('?Ӄ');
не работает, но echo gzinflate($a)
.
Есть ли способ получить фактическое содержимое $a
в мой буфер обмена или вывести его таким образом, чтобы я мог скопировать и вставить его в gzinflate()
для извлечения исходной строки? Единственный способ решения проблемы я нашел что-то вроде:
$a = base64_encode(gzdeflate('..........'));
echo $a;
Который дает мне:
09ODAQA=
Этого достаточно, чтобы сделать дружеский echo gzinflate(base64_decode('09ODAQA='));
и получить ..........
, но я хотел бы, чтобы пропустить функции base64, если возможное.
Спасибо - да, видимое текстовое представление - это то, что мне нужно - знаете ли вы, какой способ получить такой вывод непосредственно из любых *** функций сжатия без использования второй функции кодирования? Это необязательно должно быть 'gzdeflate()' – billynoah
Это действительно навредило бы цели такой функции сжатия. – deceze
не обязательно. Результат здесь 5 байтов, а исходная строка - 10. По сути, я ищу полезное текстовое представление, которое по-прежнему остается всего 5 байтов. – billynoah