Base64 декодирует несколько строк в текстовой области с помощью PHP

У меня есть простой сценарий, в котором пользователь нажимает кнопку, и код выполняет команду оболочки, которая вырезает зашифрованные данные base64 из csv и помещает их в текстовое поле. Затем я просто присваиваю это значение переменной и вывожу декодированный результат. Тем не менее, мой результат ничего. Если я повторю $encoded_data, я увижу закодированные строки.

Мои данные расположены так в текстовом поле:

ZGF2aWRAZW1haWwuY29t
ZGF2aWRAZW1haWwuY29t
ZGF2aWRAZW1haWwuY29t
ZGF2aWRAZW1haWwuY29t
...

Есть сотни строк закодированных строк.

Если я передаю строку, декодер работает. Но с текстом внутри текстового поля он вообще ничего не возвращает. Я предполагаю, что количество переданных строк вызывает проблему с памятью. Я также заметил, что если я пытаюсь передать несколько строк, я получаю странные символы, вероятно, из-за разрывов строк. Как мне избежать и этого?

<form name = "decode" action = "" method = "post" enctype = "multipart/form-data">
<textarea id = "decode_field" name = "decode_field" rows = "10" cols = "50" autofocus><?
if (isset($_POST['decode_btn'])) {

       // Cut base64 data from csv file. Selected data is in col 2 of    each row.
       $encoded_data = shell_exec("cut -d, -f2 test.csv");

       // Display data to user.
       echo base64_decode($encoded_data);

}
?></textarea>
<input type = "submit" name = "decode_btn" value = "Get Decoded Data" />
</form>

вывод должен быть строками base64, декодированными в обычные строки построчно.

Вы пробовали разделить encoded_data на новые строки и зациклить каждую строку через base64_decode? Эта функция, похоже, не может обрабатывать несколько строк base64 за один вызов.

Noino 25.07.2019 06:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
636
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого вы хотите использовать exec, что позволит вам получить массив строк вывода из вашего разреза.

   $data = array();
   exec("cut -d, -f2 test.csv", $data);
   foreach($data as $line) {
       echo base64_decode($line);
   }

Другие вопросы по теме