У меня есть серия веб-сайтов, размещенных на одном сервере с разными доменами. Я хочу разместить некоторые распространенные PHP-скрипты, а затем иметь возможность называть их из других доменов.
Я немного свежее с моим php, поэтому попытки извинения кода PLS – я пробовал итерации следующего, которые могут попытаться помочь вам понять, к чему я стремлюсь!
изнутри php-тегов …
include('http://www.mydomain/common_include.php?show_section=$section');
$show_section = $_GET['show_section']; include('http://www.mydomain/common_include.php');//Then $show_section would be available to the included file/cod
Наконец, я попытался задействовать include, который содержит функцию, затем пытается запустить, которая включает в себя родительский скрипт.
Заранее спасибо.
#
EDIT OK OK – я понимаю, что его плохая практика так не сделает этого … СПАСИБО ОЧЕНЬ МНОГО ДЛЯ БЫСТРЫХ ОТВЕТОВ. Однако есть ли какие-либо другие рекомендации о том, как в этом случае показать это базовое приложение php на всех сайтах без необходимости добавлять файлы в корень каждого сайта? Просто чтобы предотвратить массовое копирование сценариев … (вслушиваясь вслух, звоните в сценарии из db или anyother soloutions) Еще раз спасибо за вашу помощь
Это был бы огромный риск для безопасности, если бы вы могли просто включить удаленные PHP-файлы в свои собственные проекты. PHP получает синтаксический анализ до того, как сервер отправит его вам, поэтому междоменные включительно будут содержать только выходные данные, генерируемые сценарием. Единственный способ включить PHP-файлы, чтобы они могли быть выполнены, – через локальную файловую систему.
Если вы посмотрите на документацию PHP.net о включении, вы можете найти следующее:
Если в PHP (которые находятся в конфигурации по умолчанию) включены «URL-ссылки fopen wrappers», вы можете указать файл, который будет включен с помощью URL-адреса (через HTTP или другую поддерживаемую оболочку), см. Список поддерживаемых протоколов / Wrappers для списка протоколов) вместо локального пути. Если целевой сервер интерпретирует целевой файл как код PHP, переменные могут быть переданы во включенный файл с использованием строки запроса URL-адреса, используемой с HTTP GET. Это не совсем то же самое, что и включение файла и его наследование области видимости родительского файла; сценарий фактически запускается на удаленном сервере, и результат затем включается в локальный скрипт.
Это в значительной степени объясняет все это.
Корень первоначального вопроса, казалось, вызывал беспокойство плаката относительно использования PHP-скрипта или плагина на нескольких сайтах, а затем с обременительной задачей каждый раз, когда он нуждается в обновлении. При попытке включить файлы PHP на разных сайтах это плохая идея, это лучший план структурирования вашего сценария как можно более автономного. Храните весь плагин, содержащийся в одном каталоге …. и убедитесь, что ваши вызовы функций для его использования также являются максимально возможными – чистые, хорошо названные функции, равномерные соглашения об именах и хорошо продуманный план того, какие параметры необходимы каждой функции. Избегайте использования глобальных переменных.
В идеале вы должны иметь довольно простое время, когда вам нужно обновлять плагин / скрипт во всех местах. Вы даже можете настроить автоматизированный процесс, который будет загружать новый каталог, содержащий плагин, на каждый сайт, заменяющий старый. А вызовы функций внутри вашего кода должны редко меняться.
Если ваш скрипт достаточно велик, вы можете реализовать автоматический процесс обновления, например, более поздние версии WordPress. Нажмите кнопку, и она обновится. В прошлом обновление десятка сайтов под управлением WordPress (в качестве примера) было огромной болью.
Это очень плохая практика.
На самом деле вы включаете не PHP, а только HTML-код.
Включите файлы , а не URL-адреса. Это возможно для одного и того же сервера.
Просто используйте абсолютный путь к этим файлам.
Помимо того, что это плохая практика, вы должны сначала проверить, разрешает ли включить URL-адреса, если вы действительно этого хотите.
Если, однако, все сайты, которые должны использовать сценарий, вы можете поместить скрипт где-нибудь в каталог, доступный пользователю, который выполняет php и добавляет этот каталог в свойство php.ini include_path ( также может быть выполнено во время выполнения )
(Или вы можете создать расширение php и загрузить его как расширение)
Если у вас есть права root на этом сервере, вы можете просто использовать абсолютный путь из корня файловой системы, но большинство хостов не позволит вам это сделать.