首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 解決相對路徑包含失效:dirname(__FILE__) 最佳實踐

     編輯:PHP 相關知識

    問題背景

    多層目錄結構下,include/require 使用相對路徑極易因執行入口文件不同而失效。

    目錄結構示例

    b.php          (項目根目錄)
    a.php          (根目錄)
    c.php          (根目錄)
    dir/d.php      (子目錄)

    解決方案:基於 __FILE__ 構建絕對路徑

    a.php 包含 b.php、c.php

    <?php
    include_once(dirname(__FILE__) . "/../b.php");
    include_once(dirname(__FILE__) . "/c.php");
    ?>

    c.php 包含 dir/d.php

    <?php
    include_once(dirname(__FILE__) . "/dir/d.php");
    ?>

    原理解析

    • __FILE__:當前腳本完整路徑(含文件名)。
    • dirname():取得目錄部分。
    • 拼接相對目標路徑,形成絕對路徑,消除「當前工作目錄」不確定性。

    優勢

    1. 跨目錄調用穩定可靠。
    2. 避免修改 include_path 或 chdir() 的副作用。
    3. PHP 5.3+ 可直接使用魔術常量 __DIR__ 替代 dirname(__FILE__)。

    總結

    採用 dirname(__FILE__)(或 __DIR__)拼接路徑,是解決 PHP 文件包含路徑錯位最通用、最穩健的模式,建議作為項目編碼規範強制執行。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved