<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 這部分代碼無關正文內容,只是示例展示,實際應用可根據需要調整</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"程序開始執行<br>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 如何用 pathinfo 判斷文件類型並執行不同 PHP 操作邏輯?
*
* 在PHP開發中,常常需要根據文件的類型執行不同的處理邏輯,比如圖片文件、文檔文件、視頻文件等。
* PHP內置的 pathinfo 函數可以方便地獲取文件路徑的信息,包括文件擴展名,從而實現對文件類型的判斷。
*
* 以下是一個簡單示例,演示如何使用 pathinfo 獲取文件擴展名,並根據不同類型執行不同的操作。
*/</span>
</span><span><span class="hljs-comment">// 假設有一個文件名</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.jpg"</span></span><span>;
</span><span><span class="hljs-comment">// 使用 pathinfo 獲取文件信息</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-title function_ invoke__">pathinfo</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>);
</span><span><span class="hljs-comment">// 獲取擴展名(注意轉成小寫,避免擴展名大小寫不一致問題)</span></span><span>
</span><span><span class="hljs-variable">$extension</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'extension'</span></span><span>] ?? </span><span><span class="hljs-string">''</span></span><span>);
</span><span><span class="hljs-comment">// 根據擴展名執行不同邏輯</span></span><span>
</span><span><span class="hljs-keyword">switch</span></span><span> (</span><span><span class="hljs-variable">$extension</span></span><span>) {
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'jpg'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'jpeg'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'png'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'gif'</span></span><span>:
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"這是一個圖片文件,執行圖片處理邏輯。<br>"</span></span><span>;
</span><span><span class="hljs-comment">// 這裡可以寫圖片相關的處理代碼,比如縮略圖生成、圖片壓縮等</span></span><span>
</span><span><span class="hljs-keyword">break</span></span><span>;
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'pdf'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'doc'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'docx'</span></span><span>:
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"这是一个文檔文件,執行文檔處理邏輯。<br>"</span></span><span>;
</span><span><span class="hljs-comment">// 這裡可以寫文檔相關的處理代碼,比如內容解析、格式轉換等</span></span><span>
</span><span><span class="hljs-keyword">break</span></span><span>;
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'mp4'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'avi'</span></span><span>:
</span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'mov'</span></span><span>:
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"這是一個視頻文件,執行視頻處理邏輯。<br>"</span></span><span>;
</span><span><span class="hljs-comment">// 這裡可以寫視頻相關的處理代碼,比如轉碼、提取封面等</span></span><span>
</span><span><span class="hljs-keyword">break</span></span><span>;
</span><span><span class="hljs-keyword">default</span></span><span>:
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"未知或不支持的文件類型,執行默認處理邏輯。<br>"</span></span><span>;
</span><span><span class="hljs-comment">// 這裡寫默認處理邏輯,比如拒絕上傳、提示錯誤等</span></span><span>
</span><span><span class="hljs-keyword">break</span></span><span>;
}
<span class="hljs-comment">/**
* 這里特別注意:
* 1. pathinfo 只解析文件名字符串本身,不驗證文件是否存在。
* 2. 擴展名判斷依賴文件名後綴,可能存在安全風險(比如惡意更改後綴),必要時應結合 mime_content_type 等方式進行二次驗證。
* 3. 擴展名應轉換為統一格式(一般用 strtolower)來避免大小寫導致判斷失誤。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>