У меня есть файлы HTML и PHP, которые включают HTML-код заголовка для моего сайта. В HTML-файлы я включаю этот заголовок, используя
<!--#include virtual="/top.ssi" -->
,
В свою очередь top.ssi включает в себя другие файлы:
<!--#include virtual="/navbar.ssi" -->
<!--#include virtual="/advertising/slider_advertising.ssi" -->
и slider_advertising.ssi включает в себя:
<!--#include virtual="/advertising/advertising.php" -->
Это критически важный файл, поскольку он готовит рекламные данные для отображения.
Все вышеперечисленное прекрасно работает при запуске из файлов HTML.
Теперь у меня есть несколько PHP-управляемых веб-страниц (Logon.php), которые также хотят отображать заголовок сайта с помощью top.ssi. Этот код начинается с:
<!DOCTYPE HTML>
<html>
<head><title>Login to HVmusic</title>
<?php
virtual("/top.ssi");
...
Здесь возникает проблема. virtual("/top.ssi");
выполняется нормально, но прекращает выполнение после того, как обнаружит файл PHP, включенный в top.ssi <!--#include virtual="/advertising/advertising.php" -->
, Выводится вывод файла Advertising.php, а затем прекращается вывод PHP из logon.php. Таким образом, вывод останавливается даже без отображения всего заголовка.
Если я удалю заявление для <!--#include virtual="/advertising/advertising.php" -->
затем logon.php отображает свою страницу нормально (без, конечно, того бита заголовка, который отображается Advertising.php). Итак, это говорит мне о том, что у PHP возникла проблема с файлом virtual (), который включает другой файл PHP.
Есть ли способ это исправить? Это какое-то известное ограничение в PHP? Я гуглил два дня и не могу найти упоминания об этой проблеме. Спасибо за любую помощь, которую вы можете предложить.
Спасибо за советы, которые прояснили мое мышление. Я только что преобразовал все свои веб-страницы в PHP, и это решило проблему. Большинство моих страниц были уже на PHP, так что конвертировать HTML-страницы было совсем не сложно. Все используемые мной файлы были легко конвертированы <? php require "filename"; ?>
вместо <!--#include virtual="filename" -->
Основная проблема, вероятно, связана с некоторым конфликтом из-за запуска в PHP, а затем вызова virtual()
который вызывает экземпляр apache, который затем вызывает другой экземпляр PHP для обработки включаемых файлов PHP, которые я использовал.
Других решений пока нет …