PHP - добавить / удалить символ возврата каретки в строку с кодировкой base 64 - PullRequest
3 голосов
/ 23 сентября 2010

У меня есть длинная строка в кодировке base64 verrrrrrrry, которая отображается в текстовой области.Проблема состоит в том, что в этой строке нет пробелов и возвратов каретки, поэтому она отображается в одной строке с уродливой горизонтальной полосой прокрутки.

Можно ли как-нибудь добавить возврат каретки вручную после base64_encode () и перед выводом втекстовой области, затем удалите эти CR после извлечения этой строки из текстовой области (до декодирования)?

Ответы [ 5 ]

5 голосов
/ 23 сентября 2010

Вы можете использовать chunk_split, чтобы разбить вашу строку на куски определенной длины, а затем воссоединить эти куски с нужным символом или строкой:

$str = base64_encode($whatever);
echo '<textarea name="textarea">'
     . chunk_split($str, 30, "\n") // put a newline every 30 characters
     . '</textarea>';

Поскольку base64_decode игнорирует пробел, вам не нужно делать ничего особенного после получения значения textarea.

3 голосов
/ 23 сентября 2010
base64_decode(wordwrap(base64_encode('very ... long'), 80, "\n", true)) == 'very ... long'
3 голосов
/ 23 сентября 2010

Конечно.Пробел игнорируется:

<?php

echo base64_encode('Lorem Ipsump'); // TG9yZW0gSXBzdW1w

echo base64_decode('TG9 yZW0gS      XBz dW1w'); // Lorem Ipsump

?>
1 голос
/ 23 сентября 2010

Или вы можете просто использовать атрибут HTML wrap, чтобы сделать это в чистом HTML и обойти любую реализацию PHP ...

<textarea name="foo" wrap="soft"><?php echo $encodedString; ?></textarea>
0 голосов
/ 23 сентября 2010

Это можно сделать с помощью функции PHP wordwrap .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...