#php #asp.net #magento #server-side-includes
#php #asp.net #magento #на стороне сервера -включает
Вопрос:
Вот ситуация: У меня есть ASP.NET основной сайт с разделом Magento «Купить онлайн». Сайт .NET содержит заголовок с динамически генерируемыми меню, и я должен повторно использовать тот же заголовок на стороне сайта Magento.
Я не могу просто скопировать HTML в статический блок, поскольку пункты меню генерируются динамически из базы данных. Я пытался использовать Iframe, но для меню я использую superfish, поэтому, когда отображаются подменю, они не помещаются в iframe, поэтому мы не видим всего меню. Итак, я попытался использовать php include с обоими следующими синтаксисами: include(«/GetHeader.aspx?l=en»); и include(«http://siteurl/GetHeader.aspx?l=en «); но оба ничего не показывают, страница просто пуста.
Мой php.ini настроен на отображение ошибок и предупреждений, а для allow_url_fopen и allow_url_include установлено значение On
Есть идеи о том, как добиться того, что я пытаюсь сделать?
Спасибо
Ответ №1:
Я действительно не думаю, что это чисто возможно с простым стеком сервера. Возможно, вы могли бы что-то сделать, если у вас запущен Varnish с использованием Edge Side Includes.
include
Функция PHP предназначена для включения файлов во время компиляции через файловую систему. Это означает, что он не выполняет никаких HTTP-запросов и, следовательно, не выполняется через ASP.NET движок. Вот почему это не работает так, как вы его используете.
Ответ №2:
Вы могли бы вызвать страницу напрямую, используя функцию, подобную веб-запросу PHP.
Комментарии:
1. Согласен, я бы сам не стал использовать этот метод, но я ответил на заданный вопрос. Я не могу понять, почему он хочет делать то, что он делает, и я надеялся, что путаница в методе, который должен был бы работать, подтолкнет его к лучшему решению (написание виджета на PHP, который напрямую взаимодействовал бы с базой данных).
Ответ №3:
Поскольку у вас есть allow_url_fopen
, я верю, что вы можете это сделать:
print file_get_contents('http://siteurl/GetHeader.aspx?l=en');