我有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");
执行正常,但在遇到top.ssi <!--#include virtual="/advertising/advertising.php" -->
中包含的PHP文件后停止执行。显示advertising.php的输出,然后logon.php的PHP输出停止。因此,输出会停止,甚至不会显示整个标题。
如果我删除<!--#include virtual="/advertising/advertising.php" -->
的语句,那么logon.php会正常显示它的页面(没有,或者当然是advertising.php显示的标题的那一位)。所以这告诉我PHP正在使用包含另一个PHP文件的virtual()文件出现问题。
有什么方法可以解决这个问题吗?这是PHP中的一些已知限制吗?我一直在谷歌搜索两天,没有提到这个问题。感谢您提供的任何帮助。
答案 0 :(得分:0)
感谢您的提示,澄清了我的想法。我刚刚将所有网页转换为PHP,这解决了这个问题。我的大多数页面都已经是PHP,因此转换HTML页面的工作并不多。我使用的所有包含文件都可以轻松转换为使用<? php require "filename"; ?>
而不是<!--#include virtual="filename" -->
潜在的问题可能与在PHP中运行的一些冲突有关,然后调用调用apache实例的virtual()
,然后调用另一个PHP实例来处理我使用的PHP包含文件。