PHP基礎---檔案包含
檔案包含
檔案包含的作用
檔案包含的意義:
1、要麼使用被包含檔案中的內容,實現程式碼的共享(重用):向上包含(索要)
向上包含:在當前指令碼要用某個程式碼之前包含別的檔案
2、要麼自己有東西可以給別的檔案使用,實現程式碼的共享(重用):向下包含(給予)
向下包含:在自己有某個東西的時候,需要別的指令碼來顯示(自己程式碼寫完之後包含其他檔案)
最大的作用:分工協作,每個指令碼做的事情不一樣,因此可以使用協作方式,讓多個指令碼共同完成一件事
檔案包含的四種形式
四種形式(兩種大形勢)
include:包含檔案
include_once:系統會自動判斷檔案包含過程中,是否已經包含過(一個檔案最多被包含一次)
require:與include相同
require_once:與include_once相同
包含基本語法
include ‘檔名字’;
include(‘檔名字’); //檔名字:路徑問題向上包含:是先包含檔案,後使用檔案中的內容
向下包含:先準備內容,然後包含另外的檔案,在另外的檔案中,使用當前的內容
檔案載入的原理
PHP程式碼的執行流程
1、讀取程式碼檔案(PHP程式)
2、編譯:將PHP程式碼轉換成位元組碼(生成opcode)
3、zendengine來解析opcode,按照位元組碼去進行邏輯運算
4、轉換成對應的HTML程式碼
1、在檔案載入(include和require)的時候,系統會自動的將包含檔案中的程式碼相當於嵌入當前檔案中
2、載入位置:在哪載入的,對應的檔案中的程式碼嵌入的位置就是對應的include位置
3、在PHP中被包含的檔案是單獨進行編譯的
PHP檔案在編譯的過程中如果出現了語法錯誤,那麼會失敗(不會執行);但是如果被包含檔案有錯誤的時候,系統會在執行到包含include這句語句的時候才會報錯。
include和require區別
include系統會碰到一次,執行一次;如果對同一個檔案進行多次載入,那麼系統也會執行多次
include_once:系統碰到多次,也只會執行一次
include和require的區別:本質都是包含檔案,唯一的區別在於包含不到檔案的時候,報錯的形式不一樣
include的報錯級別比較輕:不會阻止程式碼的執行
require的報錯級別比較高:如果包含出錯程式碼不再執行require後面的程式碼
檔案載入路徑
檔案在載入的時候需要指定檔案路徑才能保證PHP正確的找到對應的檔案。
檔案的載入路徑包含兩大類:
1、絕對路徑
從磁碟的根目錄開始(本地絕對路徑)
Windows:碟符C:/路徑/PHP檔案
Linux:/路徑/PHP檔案
從網站根目錄開始(網站絕對路徑)
/:相對於網站主機名字對應的路徑
localhost/index.php ->E:/server/apache/htdocs/index.php
2、相對路徑
./:表示當前資料夾
…/:上級目錄(當前資料夾的上一層資料夾)
絕對路徑和相對路徑的載入區別
1、絕對路徑相對效率偏低,但是相對安全(路徑不會出錯)
2、相對路徑相對效率較高,但是容易出錯(相對路徑會出現改變)
檔案巢狀包含
巢狀包含的時候就很容易出現相對路徑出錯的問題:相對路徑會因為檔案的包含而改變(./和./):windows下面,每一個資料夾下都有.h和…d的資料夾
舉個簡單的生活栗子:
張三 左邊是 李四,李四左邊是王五
張三把李四叫到自己的位置:李四和王五之間有兩個位置,李四如果還按照左邊伸手找王五就找不到。
相關文章
- PHP檔案包含 整理PHP
- shell基礎教程二十四: shell基礎教程: Shell檔案包含
- PHP基礎教程-26 連結PHP檔案PHP
- PHP檔案包含小總結PHP
- "白話"PHP檔案包含漏洞PHP
- PHP漏洞全解————10、PHP檔案包含漏洞PHP
- PHP檔案包含漏洞(利用phpinfo)復現PHP
- 檔案包含-基於Pikachu的學習
- 檔案包含漏洞(本地包含配合檔案上傳)
- PHP本地檔案包含漏洞環境搭建與利用PHP
- Shell 檔案包含
- 檔案包含2
- CTFer——檔案包含
- 檔案包含之包含了Linux檔案描述符Linux
- 什麼是檔案包含漏洞?檔案包含漏洞分類!
- Linux基礎學習——檔案基礎Linux
- Oracle控制檔案基礎Oracle
- 檔案系統基礎
- Unity基礎——.meta檔案Unity
- 檔案包含漏洞示例
- 包含檔案(Include file)
- Javascript 基礎夯實 —— 通過程式碼構建一個包含檔案的 FormData 物件JavaScriptORM物件
- 6.PHP包含檔案、終止指令碼、陣列指標PHP指令碼陣列指標
- PHP 基礎PHP
- PHP基礎PHP
- nginx基礎版本專案實戰包含最佳化(六)Nginx
- 檔案管理基礎命令一
- python 基礎之檔案Python
- Python基礎——檔案操作Python
- Spark基礎-Scala檔案操作Spark
- Oracle引數檔案基礎Oracle
- 【Java基礎】--上傳檔案Java
- C++基礎::檔案流C++
- 檔案IO中基礎操作
- 遠端檔案包含shell
- 檔案包含漏洞小結
- [web安全] 檔案包含漏洞Web
- 本地檔案包含之包含日誌獲取webshellWebshell