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


Using PHP Virtual() to include another PHP file fails

我有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 文件后停止执行。显示广告.php的输出,然后停止登录.php的 PHP 输出。因此,输出停止甚至不显示整个标题。

如果我删除<!--#include virtual="/advertising/advertising.php" -->语句,则登录.php正常显示它的页面(当然,没有广告显示的标题.php位(。所以这告诉我 PHP 在包含另一个 PHP 文件的 virtual(( 文件时遇到了问题。

有什么办法可以解决这个问题吗?这是PHP中的一些已知限制吗?我已经在谷歌上搜索了两天,找不到提到这个问题。感谢您提供的任何帮助。

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

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