чтение против включения - PullRequest
0 голосов
/ 08 февраля 2011

Рассмотрим следующее:

У меня есть большой проект, который состоит из родительского сайта, а также нескольких «дочерних» сайтов, для которых все они имеют идентичный «основной / базовый» контент .. (изображения, 'включает в себя ', таблицы стилей и т. д.)

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

Это приведет к тому, что любые измененные «основные» файлы (изображения, «включенные», таблицы стилей и т. Д.) Будут влиять на все перекрестные ссылки.

Как лучше всего это сделать?


в настоящее время (возможно временно) Я использую следующее .. <?php readfile('http://remotepath.com/_core/includes/top_nav.php'); ?>

Что является попыткой ближайшего решения к <?php include('/filepath/'); ?>

Это поднимает очевидную проблему - использование следующего для таргетинга на текущую страницу больше не будет работать. Во-вторых, небезопасно получение содержимого с помощью readfile?

<?php $url = basename($_SERVER['SCRIPT_FILENAME']); echo $url; ?>

это, конечно, вернет путь к этому файлу, 'top_nav.php'

Как я могу получить значение URL / веб-адреса, используя аналогичный метод?

Любое понимание будет высоко ценится!Приветствия.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Не включать удаленные исходные файлы. Если вам нужна одна и та же копия библиотеки PHP на нескольких разных серверах, есть несколько простых способов сделать это. Вы можете создать rsync, который периодически копирует любые изменения с главного устройства на подчиненные, или поместить ваши общие файлы в систему управления исходным кодом, например, git, а затем создать команду «git pull» для каждого ведомого.

1 голос
/ 08 февраля 2011

Не делай этого.

Хорошо, если ваши изображения, скрипты и таблицы стилей находятся на другом сервере. На самом деле, это действительно хорошая вещь - это означает, что вы можете загружать больше файлов одновременно, что ускорит загрузку вашего сайта. Тем не менее, выполнение удаленных файлов include будет очень вредным. Это потому, что это заставляет ваш сервер делать HTTP-запрос к удаленному серверу. Пока это происходит (и это может легко занять секунду или больше), ваш скрипт ничего не будет делать . Это сильно замедлит ваш сайт.

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

NB. Тот факт, что вы можете звонить include или readfile через HTTP, не означает, что вы должны .

...