У меня есть сайт со следующей структурой каталогов:PHP require_once путь
index.php
connections/database.php
contacts/details.php
inc/functions.php
index.php, database.php и details.php страницы все требуют страницы functions.php. Я включаю это на следующих страницах:
$path = dirname(__DIR__);
// looks like this: /Library/WebServer/Documents/clients/acme
require_once $path.'/inc/functions.php';
Это хорошо работает на моем сервере разработки Mac. Я просто загрузил файлы на рабочий сервер, на котором работает IIS/Windows 2008, поэтому я знал, что будут проблемы с некоторыми путями.
мне пришлось изменить код, чтобы включить файл functions.php в этом:
$path = dirname(__DIR__);
// looks like this: C:\inetpub\wwwroot\client_sites\acme
require_once $path.'\inc\functions.php';
Это все работает до сих пор, но мне интересно, если есть простой способ сделать это динамичным, так что я не нужно изменять строку для правильной обратной косой черты или косой черты в зависимости от среды сервера? В какой-то момент я забуду, или клиент может изменить серверы, а затем это сломается и потребует вручную изменить пути.
Есть ли способ автоматически обрабатывать путь независимо от операционной среды сервера?
Вы можете просто использовать/повсюду, он будет правильно интерпретироваться на машинах Windows. – Orangepill
Согласитесь с @Orangepill. Слитки косы должны отлично работать как на окнах, так и на системах * nix. – Cyclonecode
PHP будет автоматически переводить разделители каталогов для вас. Просто используйте '/' и не беспокойтесь об этом. Единственное, о чем вам нужно беспокоиться, это обратиться к разным дискам. Windows'd нужны 'D: /', 'C: /' и т. Д., Тогда как unix-ish-системы не могли не беспокоиться об этом. –