Как обрезать строку в кодировке Base-64? - PullRequest
1 голос
/ 05 августа 2010

Я не очень разбираюсь в PHP.Я кодирую URL с base64_encode.Я получаю довольно длинную зашифрованную строку с множеством странных символов в точности так, как я хочу.Есть ли способ обрезать эту длинную строку символов, скажем, до 10 или 15 символов, чтобы я мог декодировать ее позже снова?

Я знаю, что есть trim(), но это не совсем то, что я хочу.Я хочу, чтобы длинная закодированная строка была довольно короткой, а позже я хочу снова ее декодировать.

Есть идеи?

1 Ответ

8 голосов
/ 05 августа 2010

Невозможно «сократить» любую строку без потери некоторых данных.

  • Если вы хотите физически укоротить закодированную строку (с конечным результатом, являющимсятолько часть этой строки), примените substr(), но , а не к закодированной версии: сначала необходимо декодировать ее, а затем перекодировать сокращенную версию.

  • Другой вариант - сжимать строку.Это может несколько сократить его: посмотрите на gzcompress () .Тем не менее, ваш пробег может варьироваться: степень сжатия будет зависеть от того, какие данные у вас есть.При небольших входных строках результат может быть даже больше исходного.

  • Если вы хотите повторно использовать переменную в многостраничном процессе , и неЕсли вы хотите передать его по ссылке или форме, рассмотрите возможность создания короткого случайного ключа и сохранения данных в сеансе пользователя:

    $_SESSION[$randomKey] = "lllloooooooooooong data here";
    

    Вы можете передать случайный ключ и всегда получить доступ к "длинные "данные с использованием $_SESSION[$randomKey].Для этого вам нужно инициализировать сеанс .

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