Добрый вечер. Я нашел несколько вопросов, которые, казалось, задавали то же самое, о чем я прошу, но ни один из ответов не работает для меня. В принципе, у меня есть несколько общих PHP-файлов (в основном, классов, но некоторые из них нет), которые я хочу использовать несколькими PHP-сайтами.
Вот пример моей структуры папок:
Сайт A Root C: \ Personal \ WebSites \ SiteA
Сайт B Корень C: \ Personal \ WebSites \ SiteB
Общий код C: \ Personal \ WebSites \ Shared
С сайта AI пытались использовать include ("../ Shared / foo.php") для доступа к файлам, но это не сработало. Я чувствую, что это связано с тем, что папка находится за пределами корневой папки сайта SiteA. Есть ли способ просто включать файлы из общего каталога? Я не могу себе представить, что это необычная практика, но я просто не могу понять.
Кстати, я использую PHP 5.2.14 через IIS (через FastCGI) в Windows 7, если это имеет значение. В конце концов, я буду перемещать эти сайты в хостинг Linux / Apache, поэтому я бы предпочел, чтобы какое-либо решение работало с ними.
Благодаря!!
В php.ini вы можете добавлять каталоги в include_path
, а затем включать файлы.
"C:\Personal\Websites\Shared;"
Если вы добавите такую строку в уже существующий include_path
вы можете include 'specialDir\Class.php' where
specialDir is a directory in
Shared`.
Лучше всего настроить каталог в любом месте (скажем, C: \ Personal \ Shared) и отредактировать ваш php.ini include_path, чтобы добавить этот каталог в качестве пути включения. Убедитесь, что вы правильно установили права, поэтому IIS позволяет вам получить доступ к этому каталогу (я не на 100% о том, как это сделать с Windows, но это должно быть довольно легко).
Затем все, что вам нужно сделать, это включить файл, как если бы он был в том же каталоге (PHP обрабатывает поиск с помощью каталогов для вас).
Например, если у вас есть C: \ Personal \ Shared \ foo.php, вы можете включить его следующим образом:
include("foo.php");