PHP的相对路径问题

巴扎黑
巴扎黑asal
2016-11-22 16:51:231267semak imbas

在PHP中require,include一个文件时,大都是用相对路径,是个很头疼的问题。

 

例如:

 d33960d65abb73911b33db45e19cd446(网站根目录)

 ├72d4ced2cc960a6bc2541984146fdaaa文件夹

 │ │

 │ └1.php

 ├9368c5823948a595f9974a5e2b3bd3f1文件夹

 │ │

 │ └2.php

 └index.php

问题:在1.php中通过include(“../B/2.php”)来引入B目录下的2.php文件;

 在index.php中通过include(“A/1.php”)来引入A目录下的1.php文件;

 运行出来当然会出现问题,找不到../B/2.php文件。 

记住一个原则,所有的包含语句最后都转换为以包含文件路径为基准的包含路径建议使用一个基本路径来作为所有的路径参考,例如 __FILE__ 或者 $_SERVER['DOCUMENT_ROOT']

 __FILE__:(适合各种情况)

在config文件里配置站点根目录 
define( "WEB_ROOT ",   dirname(__FILE__)   ); 
config文件放到网站的根目录里, 
其它文件包含配置文件, 
包含其它文件时根据WEB_ROOT来定位即可。 
require_once(   WEB_ROOT   .   "/a.php "   );


$_SERVER['DOCUMENT_ROOT'],适合非虚拟主机(Alias)情况

Php代码  

<?php  
if (!defined("WETSITE_BASE_DIR"))  
define("WETSITE_BASE_DIR", $_SERVER[&#39;DOCUMENT_ROOT&#39;].&#39;/Clare/&#39;);      
require_once(WETSITE_BASE_DIR.&#39;includes/global.inc.php&#39;);  
?>


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP 读取 AD 用户Artikel seterusnya:php 人性化显示时间