2011-04-19 75 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