Gloynus_Aleos
@Gloynus_Aleos
Эльф

Как через PHP конвертировать строки из TXT-файла в JSON с условиями?

Имеется TXT-файл с текстом внутри.
$text_list = file('../templating/a0/update-01.txt');

Каждая строка являет собой отдельный объект для будущей базы данных и кроме содержания может иметь особое отличие в виде специального символа в своём начале или нескольких таких символов. В моём случае, это символ табуляции.
Если табуляции нет, то строка присваивается свойству с именем «title».
Если табуляция есть, то создаётся массив строка добавляется ему.
Если табуляция есть и её столько же, сколько и в предыдущей строке, то строка добавляется тому же массиву.
Если табуляция есть и её больше, чем на предыдущей строке, то создаётся ещё один вложенный массив и строка добавляется ему.

Есть и другие условия, но мне главное понять, как правильно запустить цикл, который начнёт обрабатывать строки по условиям и добавлять их в JSON-массив. Поэтому, буду рад получить хотя бы наводку. Ибо в связи с отсутствием данного знания я изобрёл свой "велосипед", который делает все необходимые обработки, но только через строки, из которых формируется массив, которые уже потом конвертируются в JSON — длинно и не грамотно.
  • Вопрос задан
  • 573 просмотра
Пригласить эксперта
Ответы на вопрос 3
Minifets
@Minifets
Hello world!!!
Открываешь файл через fopen, и построчно читаешь его fopen в цикле, пока не дойдешь до конца файла. В цикле пишешь логику, которая будет обрабатывать строку и добавлять в json.

php.net/manual/ru/function.fread.php
Ответ написан
Комментировать
@MGriboedoff
Сначала определись с форматом своего файла, хорошо чтобы это был XML или что-то типа того.
Составь структуру и возможные управляющие символы - спецификацию.
Далее делай как говорит Minifest.
В теле цикла используй регулярные выражения. "PHP preg_match()"
Для теста регулярок удобно использовать сервис типа: https://regex101.com/
Далее ты можешь те данные, которые тебе нужны собирать в массив или вообще объект.
По завершении разбора используй функцию "PHP json_encode()" для преобразования объекта или массива в JSON
Ответ написан
@airorfo
Ув. Глойнус. Мы понимаем ваши переживания. Однако было бы очень круто, если бы вы выложили кусочек "проблемного" кода и пример текстового файла, чтобы нам всем было легче житься.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы