簡體   English   中英

php包含在html文件目錄中

[英]php includes in html files-directories

所有php包含文件都必須在include目錄中,還是只是組織上的便利? 我可以使用該目錄的路徑從任何目錄中包含文件嗎? 包含php的html文件是否必須有php擴展名? 如果是這樣,我想這意味着如果他們都有我計划“包含”的菜單,我所有的html文檔都將是php。 是否可接受的協議使您網站上的每個文件都是一個php文件?

謙卑敬畏的弓......

ps這個主題有一個很好的聖經!?

你不需要將你的php包含在任何特定的地方,或者有任何文件擴展名......

調用include('/ path / to / your / file / with / any / extension.extension'); 應該包含它作為一個PHP文件

使用php擴展程序通過php代碼調用文件通常更安全。

如果你將PHP放在.html文件中並包含()它,它應該可以工作。 但是,如果有人直接從服務器請求.html文件,他們可以看到所有未處理的PHP代碼,這是危險的。 因此,如果您正在執行此操作,則將這些文件放在非Web可訪問的目錄中(例如,在文檔根目錄上方)或更改Web服務器配置,以便將.html文件視為PHP。

您應該能夠包含()任何文件,但如果PHP中存在open_basedir限制,您可能會在訪問某些目錄時遇到問題(您可能會在大多數虛擬主機上找到)

您可以從服務器上的任何位置包含文件(當然,取決於文件訪問權限和安全限制)。

使用包含目錄有助於保持組織良好,但不是必需的。

如果文件包含PHP代碼,則應將其保存為.php文件 - 否則如果直接調用該代碼將無法運行。 這將為您留下一個文件,該文件的行為方式會有所不同,具體取決於訪問方式,這可能不是您想要的,可能是安全威脅。

為了解決這個問題,我看到有些人覆蓋了文件類型,因此服務器將所有.html文件視為PHP腳本 - 我不建議這樣做,因為即使它們不包含任何PHP,它也會減慢所有文件的處理速度。 遵循最小驚喜原則 - 讓您的HTML文件為.html,PHP文件為.php - 每個人都會更開心。

詹姆斯·穆瑟:

我想你現在指的是Apache SSI包括(參見http://httpd.apache.org/docs/2.2/howto/ssi.html#standard-footer

不知道答案,我試過了,這是我的結果

Extension  Call method        PHP runs
 .html      browser            no
 .html      Apache #include    no
 .html      PHP include()      yes
 .php       browser            yes
 .php       Apache #include    yes
 .php       PHP include()      yes

(使用WinXP,Apache 2.2.3,PHP 5.2.26和CentOS 5.2,Apache 2.2.3,PHP 5.1.16進行測試)

所以你的答案是肯定的 - 如果你想通過Apache SSI #include調用PHP腳本,腳本必須有.php擴展名(或者其他擴展名,即.php4 .php5等,它在Apache注冊為PHP腳本),否則它不會運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM