使用PHP Virtual()包含另一个PHP文件失败

时间:2015-03-26 21:04:55

标签: php virtual

我有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中的一些已知限制吗?我一直在谷歌搜索两天,没有提到这个问题。感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

感谢您的提示,澄清了我的想法。我刚刚将所有网页转换为PHP,这解决了这个问题。我的大多数页面都已经是PHP,因此转换HTML页面的工作并不多。我使用的所有包含文件都可以轻松转换为使用<? php require "filename"; ?>而不是<!--#include virtual="filename" -->

潜在的问题可能与在PHP中运行的一些冲突有关,然后调用调用apache实例的virtual(),然后调用另一个PHP实例来处理我使用的PHP包含文件。