> php教程 > php手册 > php中require/include 包含相对路径的解决办法

php中require/include 包含相对路径的解决办法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-06 19:58:09
원래의
1623명이 탐색했습니다.

在PHP中require,include一个文件时,大都是用相对路径,是个很头疼的问题。 例如: web(网站根目录) ├A文件夹 │ │ │ └1.php ├B文件夹 │ │ │ └2.php └index.php 问题:在1.php中通过include(“../B/2.php”)来引入B目录下的2.php文件; 在index.ph

 

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

 

例如:


(网站根目录)
文件夹
│ │
│ └1.php
文件夹
│ │
│ └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文件。

这是因为:

  1.php被编译到index.php中执行,也就是相当于1.php同index.php一样位于网站根目录下,但是在1.php别忘记了一断代码include(“../B/2.php”);

  “../”意味着什么?上一级目录,现在1.php已经在根目录下了,这时候再上一级,那就已经找不到2.php了,所以问题就出现在此。

  很多人会想到include(“/B/2.php”),这样不就好了,同样不行php不同于我们的jsp,在include中使用”/”并不是我们所想象的网站根目录,它代表的的当前的目录,因此还是不行。

  既然不能用相对的,那我们可以改用绝对路径的方式。只是在包含文件之前,先包含一个global.php文件。这个文件的内容是:

chdir(dirname(__FILE__));
?>

,它的作用是将当前目录切换到global.php所在的路径。将global.php放在根目时录下,在这之后包含的所有文件就会以根目录为基准了。

  例如,在2.php中引用1.php,则,通过2步:

1.require_once(dirname(__FILE__)."/global.php");//视具体的目录情况,反正是要指回到根目录下的global.php;

2.require(‘A/1.php’)//从根目录开始定位

这样的话,不管页面在哪一级目录,我都可以去引用,不用再担心路径问题了!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿