0

我有一个带有 shtml 扩展名的页面的网站,主要是为了让菜单导航栏与 SSI 正确显示。我现在正在添加一个带有 php 的页面,为了让这个页面正常工作,我给它一个 php 扩展名,这会导致菜单不再显示。我还坦率地发现,对于大多数使用我的网站的人来说,shtml 扩展是一个奇怪的扩展。如果可能,我想为所有页面更改为 php 扩展名,但是如果我不再使用 shtml 扩展名,如何重新格式化我的 SSI 以正确显示?

当前感兴趣的代码是<!--#include virtual="/Navbar.shtml" -->

4

3 回答 3

0
<!--#include virtual="/Navbar.shtml" -->

<?php require '/Navbar.php' ?>
于 2011-04-19T08:24:38.973 回答
0

如果您使用 SSI 包含本地文件,将使用静态源文件 - 在这种情况下,未解析的PHP 源代码。

您必须执行远程包含才能使其正常工作(类似于<!--#include virtual="http://localhost/Navbar.shtml" -->,取决于服务器配置)。这不是最优的,因为新的服务器请求和 PHP 实例已启动。

最好为此放弃 SSI,并使用@Alin 显示的 PHP 包含。

于 2011-04-19T08:26:11.303 回答
0

只需将您的服务器端包含代码更改为

<?php require "/Navbar.php" ?>

并重命名Navbar.shtmlNavbar.php

Require 表示存在错误,如果 Navbar.php 丢失,则页面根本不会加载。您也可以使用 include,它与此类似,但允许页面加载。阅读以下手册页以获取有关 include 和 require 的更多信息。

http://www.php.net/manual/en/function.include.php
http://php.net/manual/en/function.require.php

希望这可以帮助 :)

于 2011-04-19T08:28:03.760 回答