php文件包括,PHP包括另一个目录中也包含文件的文件

在PHP中,由于包含文件的相对路径导致的问题。当header.php尝试包含head.php时,路径解析出现问题。解决方案是使用__DIR__常量来创建绝对路径,确保文件包含不受当前工作目录(CWD)变化的影响。例如,通过在include语句中使用$basedir = realpath(__DIR__);来获取当前目录,并结合此常量创建文件包含路径。
摘要由CSDN通过智能技术生成

我已经包含多个文件,我最近开始了一个新目录,我无法让我的一些包含工作.

例如,我在postpage.php中包含了这个,它位于example.com/c/postpage.php:

include '../includes/overall/header.php';

它的工作原理是它进入根目录并包含header.php

但我的问题是header.php还包括未包含的文件.

header.php中的代码是:

include 'includes/head.php';

这是行不通的

如果我将header.php更改为:

include '../includes/head.php';

然后它打破了我网站的其余部分,同时只为postpage.php工作

欢迎任何建议.

解决方法:

防止可能破坏相对路径的CWD更改的最佳方法是使用绝对路径包含文件.

一个简单的方法是使用__DIR__常量.

例:

文件结构:

serverRoot (/)

|-usr

|-local

|-www

|-index.php

|-bootstrap.php

|-includes

|-a.php

|-overall

|-b.php

|-c.php

让我们说:

> index.php包括bootstrap.php和a.php

> a.php包括b.php

> bootstrap.php包含c.php

的index.php

$basedir = realpath(__DIR__);

include($basedir . '/bootstrap.php');

include($basedir . '/includes/a.php');

a.php只会

global $basedir;

include($basedir . '/includes/overall/b.php');

bootstrap.php中

global $basedir;

include($basedir . '/includes/overall/c.php');

标签:php,include,directory

来源: https://codeday.me/bug/20190725/1534545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值