Вернуть массив их файла, чтобы каждая строка имела свой индекс

145
11 декабря 2018, 14:10

Делаю toDo лист. Пользователь вводит новую задачу, эта задача с новой строки записывается в файл и потом считывается весь файл, чтобы вывести весь список задач. Хранится файл на сервере.

На стороне PHP получаю массив из файла с данными и отправляю его обратно на JS. Каждая запись в файле идёт с новой строки. Нужно, чтобы каждая строка имела свой индекс, по которому к ней можно обратиться. В данный момент, имею такое:

При обращении по индексу получаю лишь символ. PHP код:

 $file = file_get_contents("toDoList.txt");
        echo $file;
Answer 1

Для того, чтобы получить массив из строки, его нужно разделить. Сделать это можно с помощью функции explode. Поскольку разделителем в данном случае выступает перенос строки, то в explode мы передаем разделитель \n.

$file = file_get_contents("toDoList.txt");
$todos = explode('\n', $file);

Теперь $todos - это массив из строк, указанных в файле. Чтобы отдать в js уже готовый todo массив, нам нужно его перевести в json формат:

//переводим данные в json
$response = json_encode($todos);
//указываем, что отдаем json
header('Content-Type: application/json');
//выводим json в тело ответа
echo $response;

Теперь в ответе будет корректный json.

READ ALSO
Yii2 Авторизация не могу получить свойства User

Yii2 Авторизация не могу получить свойства User

Всем доброго времени суток, у меня возникла следующая проблема: При авторизации вызываю метод FindByEmail:

109
Проверка переменной на валидность UTF-8

Проверка переменной на валидность UTF-8

Функция берет пароль и возвращает только те, которые соответствуют заданной длиннеКак можно в цикл запихать проверку на валидность? Требования...

162
Найти в тексте ссылку PHP

Найти в тексте ссылку PHP

Сама задача стоит непосредственно для виджета WordpressВ каждом артикле блога присутствуют ссылки типа "https://www

143
Как сделать выбор компании аккаунта?

Как сделать выбор компании аккаунта?

yii2-advanced, есть аккаунт, к нему нужно привязать id компании

162