我有一个带有shtml扩展的页面的网站,主要是为了使菜单导航栏正确显示SSI。我现在用php添加了一个页面,为了使这个页面正常工作,我给了它一个php扩展,这导致菜单不再显示。坦率地说,我也发现shtml扩展对于大多数使用我的网站的人来说是一个奇怪的扩展。如果可能的话,我想更改为所有页面的php扩展,但是如果我不再使用shtml扩展,我如何重新格式化我的SSI以正确显示?
当前感兴趣的代码是<!--#include virtual="/Navbar.shtml" -->
这应该只是一个问题,改变你的服务器端包含代码
<?php require "/Navbar.php" ?>
并将Navbar.shtml
重命名为Navbar.php
Require意味着有一个错误,如果Navbar.php丢失,页面不会加载。您也可以使用include,这是类似的,但将允许页面加载。有关include和require的更多信息,请阅读以下手册页。
http://www.php.net/manual/en/function.include.php
http://php.net/manual/en/function.require.php
希望这对你有帮助
<!--#include virtual="/Navbar.shtml" -->
<?php require '/Navbar.php' ?>
如果您使用SSI包含一个本地文件,则将使用静态源文件-在本例中,使用未解析的 PHP源代码。
你必须做一个远程包含工作(类似<!--#include virtual="http://localhost/Navbar.shtml" -->
,取决于服务器配置)。这不是最优的,因为会启动一个新的服务器请求和一个PHP实例。
最好为此放弃SSI,并使用PHP包含,如@Alin所示。