include — php включенные файлы и каталоги

Допустим, у меня есть два файла в каталоге new_folder: a.php и b.php

В файле a.php есть утверждение:

include_once 'b.php'

Кроме того, у меня есть файл demo.php в родительской папке, в демо-файле есть утверждение:

include_once 'new_folder/a.php'

И.Е. структура папок:

demo.php
new_folder
- a.php
- b.php

Почему, если я пишу в файле .php:

  • include_once 'b.php' — правильный путь
  • include_once './b.php' — неверный путь
  • include_once 'new_folder/b.php' — неверный путь

0

Решение

Попробуй это

require_once('../b.php');
0

Другие решения

мой ответ основан на php.net:
Файлы включаются на основе заданного пути к файлу или, если он не указан, указан include_path. Если файл не найден в include_path, включается, наконец, включение собственный каталог вызывающего скрипта и текущий рабочий каталог до сбоя.

это означает, что если я напишу в a.php: include_once ‘b.php’; и затем включите a.php в demo.php, затем сначала он ищет файл в include_path, затем он будет искать файл в каталоге вызывающего скрипта (a.php), и только затем он будет искать файл в рабочем каталоге (это каталог файла, который мы запускаем и запускает все include- demo.php)

edit: я попытался запустить его и обнаружил, что сначала, если в рабочем каталоге есть b.php, то он будет включать его, а не b.php из собственного каталога вызывающего скрипта.

последняя проверка для файла находится в new_folder (собственный каталог вызывающего скрипта)

0

По вопросам рекламы [email protected]