file_get_contents в других папках

#php

#php

Вопрос:

У меня такая структура папок: — классы Tasks.php — настраивает tasks.json

Мне нужно получить задачи с данными файла.json из папки classes

     public function __construct($user_id)
    {
        $this->userdata = json_decode(file_get_contents('.configstasks.json'), true);
    }
  

Я попытался указать пути другого типа (через полный путь)

В ответ я получаю либо пустой массив, либо предупреждение: file_get_contents(/configs/tasks.json): не удалось открыть поток: нет такого файла или каталога в …

Комментарии:

1. Ну, переход по каталогу … нет. поэтому попробуйте изменить это на ‘.. configs tasks.json’

Ответ №1:

Я думаю, что вы указали неправильный путь, попробуйте это

 $this->userdata = json_decode(file_get_contents(__DIR__.'/configs/tasks.json'), true);
  

Если ваши PHP-файлы находятся в каталогах классов, используйте

 $this->userdata = json_decode(file_get_contents(__DIR__.'/../configs/tasks.json'), true);
  

Ответ №2:

Вам, вероятно, потребуется перейти на один каталог из Tasks.php , использовать:

 public function __construct($user_id)
{
    $this->userdata = json_decode(file_get_contents(__DIR__.'/../configs/tasks.json'), true);
}
  

Комментарии:

1. @A.Dobriy Это действительно сработало, потому что ваш код больше не выдает предупреждения. А также json_decode() возвращает массив, что хорошо. Почему массив пуст, выходит за рамки этого вопроса.

Ответ №3:

Попробуйте:

 $this->userdata = json_decode(file_get_contents('../configs/tasks.json'), true);