2011-04-19 36 views
0

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

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

回答

0

这应该只是改变你的服务器端的问题包括代码

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

,并重新命名Navbar.shtmlNavbar.php

要求意味着存在错误和页面不会加载在所有如果Navbar.php丢失。 您也可以使用include,这与include相似,但会允许加载页面。请阅读以下手册页以了解有关包含和要求的更多信息。

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

希望这有助于:)

+0

收到以下错误消息:Warning:require(/Navbar.php)[function.require]:未能打开流:没有这样的文件或目录在/ home/troop97 /第25行的public_html/events.php 致命错误:require()[function.require]:无法打开所需的'/Navbar.php'(include_path ='。:/ usr/lib/php:/ usr/local/lib/php')在第25行的/home/troop97/public_html/events.php – dmwesq 2011-04-19 09:10:35

+0

感谢您的快速和及时的回应 - 这是一个删除斜线,现在它似乎工作的问题。 – dmwesq 2011-04-19 09:43:40

+0

@dmwesq很高兴听到你有工作:) – Hjordan 2011-04-21 11:09:21

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

<?php require '/Navbar.php' ?> 
+0

可以肯定我做的建议,我改名为我的两个包括(导航栏和页脚)从SHTML到PHP。然后,我去了我的模板,并从上面的包含虚拟...到php要求... - 然后我保存模板和基于该模板更新的文件,然后上传文件。正如我以前发布的,我仍然收到错误消息。 – dmwesq 2011-04-19 09:19:48

0

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

你将不得不做一个远程包括这个工作(像<!--#include virtual="http://localhost/Navbar.shtml" -->,取决于服务器配置)。这不是最佳的,因为新的服务器请求和PHP实例已启动。

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

+0

我试着跟着这个,并最终收到一条错误消息,说 – dmwesq 2011-04-19 09:07:29