2016-07-21 4 views
1

В строке 3, я использую следующее:Как правильно потребовать файл в другом каталоге?

require'./inc/connection.php' or die ("Cannot find the proper configuration file."); 

Я получаю эту ошибку:

PHP Warning: require_once(1): failed to open stream: No such file or directory in (directory) 

Если кто-то может помочь, это то, как он у меня установка.

index.php is the file that is using the require. connection.php is in the "inc" directory.

+0

'require __DIR__. "/inc/connection.php"; 'и если он все еще не работает, выполните' echo __DIR__. "/inc/connection.php"; 'и убедитесь, что это на самом деле правильный путь. – Bailey

+0

В стороне: As * require * всегда вызывает фатальную ошибку, когда файл не найден, * die * никогда не будет вызван и поэтому не нужен. –

ответ

0

поставить две точки (..) перед/вкл

Как ниже. используйте этот код вместо своего.

require '../inc/connection.php' or die ("Cannot find the proper configuration file."); 
+0

Это все еще не работает, оно вызывает ту же ошибку. – astral

+0

, чем проверить имя файла подключения в каталоге inc. –

+0

Я сделал, и это все равно. – astral

0

Вам нужно поставить две точки, когда вы хотите, чтобы пройти через один каталог back.here у вас есть index.php и inc в том же каталоге, так что вы должны написать

require 'inc/connection.php' or die ("Cannot find the proper configuration file."); 
+0

Я сдаюсь. Это все еще ошибка. – astral

+0

попробуйте дать абсолютный путь первым, и если он сработает, то измените его на относительный путь – Saurabh

1

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

$basePath = "/systemdir"; 
$incPath = $basePath."/inc/"; 
require $incPath.'connection.php' or die ("Cannot find the proper configuration file."); 

require $incPath.'connection.php'; 

Вы действительно не нужен штамп в конце концов, чтобы проверить, PHP будет автоматически отображаться сообщение об ошибке, если файл не найден в этом каталоге.

Если вы на окнах, попробуйте этот

require __DIR__ . '/connection.php'; 

require 'inc/connection.php'; 
+0

@Saurabh благодарю вас за указание на это. – unixmiah

+0

астральные, вы на окнах или на linux? – unixmiah

+0

Если вы на Mac, используйте команду like и перейдите в этот каталог. как только вы там, выполните команду pwd и найдите путь. Скопируйте путь и вставьте его в код. Когда вы найдете путь, прямо введите весь путь в require. – unixmiah

1

Когда вы включаете файл, вы можете:

1- Укажите полный путь для этого файла (начинается с /)

Например

require '/var/www/html/site-name/site/lib/inc/connection.php' or die ("Cannot find the proper configuration file."); 

Отметьте, что /var/www/site-name/site/lib/ part? Это составлено для этого примера. Реальный абсолютный путь зависит от сервера и где находятся нужные папки.

2- Укажите относительный путь для этого файла (начинается с имени папки или файла)

Например

require '../inc/connection.php' or die ("Cannot find the proper configuration file."); 

Использование относительного пути означает, что вы, начиная с папки, в которой код действительно существует. Например, путь: 'connection.php' означает, что connection.php находится в той же текущей папке.

Специальные имена . и .. означают текущий и родительский каталог/папки соответственно. Таким образом, чтобы включить файл с именем connection.php, который находится в родительской папке, где код, вызывающий его, вы можете настроить его на ../connection.php.

Таким образом, чтобы исправить вашу проблему, вам нужно определить, где именно этот файл пытается настроить таргетинг относительно. И похоже, что текущий путь начинается с ., что означает текущую папку (что не имеет смысла).

Легко предположить, что он должен был быть .. вместо ., но не обязательно в этом случае. Файл мог быть перемещен с момента реализации этого кода или изменилось имя папки, например inc.

+0

Я попробовал это, это закончилось тем, что добралось до инка и захватило connection.php, но с ним ничего не случилось. – astral

+0

Можете ли вы включить полный путь, где находится этот код, и полный путь к файлу 'inc/connection.php'? Также как вы узнали, что этот файл фактически не включен этим методом, и «ничего не случилось с ним» связано с тем, как вы его тестируете? –

Смежные вопросы