php的__FILE__常量和dirname()

本文介绍了在PHP中如何利用__FILE__常量和dirname()函数获取文件的绝对路径及目录部分,便于开发者更灵活地引用文件。

      使用场景:当需要引入一些文件的时候,我们可能不能准确的通过‘./’或者’…/'来找到它,这时候就需要用__FILE__ 函数获取文件的绝对路径,然后引入。

一、FILE

      这个是php定义的一个常量,用于返回文件的绝对路径。
例如文件是在F:\a\b\test\a.php下,则:

echo $a = _FILE_;
// 输出结果:F:\a\b\test\a.php

二、dirname()

定义:dirname() 函数返回路径中的目录部分。
例如:

<?php
echo dirname("c:/testweb/home.php");
echo dirname("/testweb/home.php");
?>
//输出
c:/testweb
/testweb

      这里我们在引用文件的时候,一般用dirname(FILE);
例如:

<?php
//home.php的文件目录为:c:/testweb/home.php
echo dirname(_FILE_);
?>
//输出
c:/testweb

      这样输出的是不带文件本身的路径。

      具体的大家可以自己实践一下。我这边也是经常忘,所以记录下。

end

### 作用 在 PHP 中,`__FILE__` 是一个魔术常量,它会返回当前执行脚本的完整路径文件名。这个常量在调试、包含文件以及记录日志时非常有用,可以准确地定位代码所在的位置。 ### 使用方法 以下是一些常见的使用场景示例代码: #### 1. 输出当前文件的路径 ```php echo __FILE__; ``` 上述代码会直接输出当前执行脚本的完整路径文件名。 #### 2. 在包含文件时使用 假设当前脚本需要包含另一个位于相对路径下的文件,可以结合 `__FILE__` 来构建准确的路径。 ```php include dirname(__FILE__) . '/another_file.php'; ``` 这里 `dirname(__FILE__)` 会返回当前文件所在的目录路径,然后与要包含的文件名拼接起来,确保包含的文件路径正确。 #### 3. 记录日志 在记录日志时,可以使用 `__FILE__` 来记录日志产生的文件位置。 ```php $logMessage = 'An error occurred in file: ' . __FILE__; file_put_contents('error.log', $logMessage, FILE_APPEND); ``` 上述代码将包含当前文件路径的错误信息追加到 `error.log` 文件中。 ### 注意事项 - **跨平台兼容性**:`__FILE__` 返回的路径使用的是操作系统的路径分隔符。在 Windows 上是反斜杠 `\`,在 Linux macOS 上是正斜杠 `/`。如果需要在不同平台上处理路径,建议使用 `DIRECTORY_SEPARATOR` 常量或 `dirname`、`basename` 等函数来处理路径。 - **包含文件时的相对路径**:当在被包含的文件中使用 `__FILE__` 时,它返回的是被包含文件的路径,而不是包含它的文件的路径。如果需要获取包含文件的路径,可以使用 `get_included_files()` 函数。 - **性能影响**:`__FILE__` 是一个魔术常量,在每次使用时都会动态获取当前文件的路径信息。虽然性能开销通常很小,但在性能敏感的代码中,频繁使用可能会有一定的影响。可以考虑将其值缓存到一个变量中,避免重复获取。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值