我經常看到使用.inc文件包含的PHP示例。 .inc的含義是什麼?它用於什麼?使用它的缺點和優點是什麼?什麼是.inc以及爲什麼要使用它?
回答
它沒有意義,它只是一個文件擴展名。如果該文件被設計爲包含在其他PHP文件中,那麼使用.inc擴展名命名文件是一些人們的慣例,但這只是慣例。
它確實有一個可能的缺點,即服務器通常沒有配置爲將.inc文件解析爲php,因此如果該文件位於您的web根目錄並且您的服務器以默認方式配置,則用戶可以查看您的通過直接訪問URL,.inc文件中的PHP源代碼。
它唯一可能的優點是很容易識別哪些文件被用作包含文件。雖然簡單地給它們一個.php擴展名並將它們放在一個包含文件夾中的效果相同,但沒有上述缺點。
在我看來,這些被用來在開發時快速查找包含文件。真的,這些已經被慣例和框架設計所淘汰。
這是毫無意義的評論。我總是使用.inc作爲包含文件,因爲它很容易,沒有負面影響,只有正面影響。在這種情況下,「約定」一詞沒有指稱的意思。和PHP框架,不知道,從來沒有碰過它們,我寫代碼,所以'框架'取代PHP編碼的概念是錯誤的。如果你喜歡它,使用這些東西沒什麼問題,但是相信它在代碼編輯器中被替換爲標準編程是錯誤的。 – Lizardx
通常意味着它需要包含的文件,並且本身不會生成獨立腳本。
這是一個約定而不是編程技術。
雖然如果您的Web服務器配置不正確,它可能會暴露文件的擴展名如.inc。
+1「本身並沒有獨立的腳本」 – dpp
這是程序員通常用來爲包含文件標識不同文件名的約定。因此,如果其他開發人員正在處理他們的代碼,他可以通過查看文件的名稱輕鬆確定該文件的存在以及該文件的用途。
+1「爲其他開發者」 – dpp
@domanokz。謝謝... –
只需添加。另一個缺點是,.inc文件無法被IDE識別,因此您無法利用自動完成或代碼預測功能。
如果您擔心文件的內容被傳送而不是輸出。您可以使用雙擴展名:file.inc.php
。然後它提供幫助和可維護性的相同目的。
我通常爲每個第2個PHP文件在我的網站:
- 一個名爲根文件夾
welcome.php
,包含所有的HTML標記。 - 而
inc
文件夾中的另一個名爲welcome.inc.php
的文件夾包含特定於welcome.php
頁面的所有PHP函數。
編輯:使用雙擴展.inc.php
的另一個好處是任何IDE仍然可以將該文件識別爲PHP代碼。
+1值得一提的是,我在我的一個項目中做到了這一點。 – dpp
請注意, 您可以配置Apache,以便所有擴展名爲.inc
的文件都被禁止通過直接訪問URL來檢索。
見鏈接:https://serverfault.com/questions/22577/how-to-deny-the-web-access-to-some-files
- 1. 什麼是片段URL以及爲什麼要使用它
- 2. asm(「pause」)做什麼以及爲什麼要使用它
- 3. WOFF字體,它們是什麼以及爲什麼要關心?
- 4. 什麼是相位展開以及爲什麼需要它
- 5. 什麼是armeabi以及他們爲什麼使用它
- 6. 什麼是Web API以及爲什麼要在.net中使用它?
- 7. 什麼是Ext.Component.initialConfig,它做了什麼,以及在什麼情況下使用它?
- 8. 春天 - 它是什麼,爲什麼我想要使用它?
- 9. 什麼是表達樹,您如何使用它們,以及爲什麼要使用它們?
- 10. 爲什麼MVVM以及它的核心優勢是什麼?
- 11. 爲什麼需要一個null shared_ptr以及它如何使用?
- 12. CNTKTextFormatDeserializer的概念是什麼以及爲什麼使用?
- 13. SQL,Postgres OID,它們是什麼以及它們爲什麼有用?
- 14. 什麼是PHP中的Iterables以及我們爲什麼使用它?
- 15. 什麼是InputStream和輸出流?爲什麼以及何時使用它們?
- 16. 在tomcat中,什麼是catalina_home以及我們爲什麼使用它?
- 17. 什麼是git bash以及它在打開它之後爲什麼是mingw64?
- 18. 在TDD中,爲什麼要使用OpenEJB以及爲什麼使用Arquillian?
- 19. 什麼是Get_Tasks權限以及它用於什麼?
- 20. 什麼是com.sec.android.intent.action.DVFS_BOOSTER以及是什麼導致它?
- 21. 什麼是mysql鏈接標識符以及它的重要性是什麼?
- 22. 什麼是檢查點節點HDFS?爲什麼要使用它?
- 23. 什麼是動態代理類,爲什麼要使用它?
- 24. 什麼是MQ,我爲什麼要使用它?
- 25. 什麼是SEAM框架,我爲什麼要使用它?
- 26. 什麼是C#中的字段,我爲什麼要使用它?
- 27. 什麼是斷言?你爲什麼要使用它們?
- 28. 什麼是React Native?我爲什麼要使用它?
- 29. 什麼是TDS協議版本8.0,爲什麼要使用它?
- 30. 什麼是語義標記,爲什麼要使用它?
@domanokz是的,它將是安全的,然後使用。只有在使用'require'或'include'結構時纔會將其視爲php,並在其餘時間視爲純文本。將它視爲服務器上的文本不會受到傷害,只會在代碼以文本形式提供給最終用戶時纔會受到影響)。 – Paulpro
@Paulpro我一直想知道這一點,謝謝你明確這一點! –
很好的解釋。剛從一份新工作開始,在整個應用程序中看到這些亂七八糟的東西。我不知道這純粹是一種慣例。謝謝! – Chev