PHP 文件系统 realpath() 函数



PHP 文件系统realpath()函数用于返回绝对路径名。此函数可以移除所有符号链接(如“/./”、“/../”和额外的“/”),并返回绝对路径名。此函数在失败时可能返回 false。

使用 realpath() 时,必须提供路径。或者,您可以使用空字符串("")。如果您这样做,路径将更改为当前目录。

语法

以下是 PHP 文件系统realpath()函数的语法 -

string realpath ( string $path )

参数

以下是realpath()函数唯一必需的参数 -

序号 参数及说明
1

$path(必需)

它是要解析的文件或目录的路径。

返回值

函数realpath()返回绝对路径名,并在失败时返回 FALSE。

PHP 版本

realpath()函数最初作为 PHP 4 核心的一部分引入,并且与 PHP 5、PHP 7 和 PHP 8 兼容良好。

示例

这是一个基本示例,用于了解如何使用 PHP 文件系统realpath()函数获取给定路径的绝对路径。

<?php
   echo $real_path = realpath("C:/PhpProject/index.php");
?>

输出

以下是以下代码的结果 -

C:\PhpProject\index.php

示例

这是一个另一个示例,用于演示realpath()函数的使用,以获取给定文件路径的绝对路径,并在使用过程中处理错误。

<?php 
   $path = '../PhpProject/index.php';
   $absolutePath = realpath($path);
   
   if ($absolutePath !== false) {
       echo "The absolute path is: " . $absolutePath;
   } else {
       echo "The file does not exist.";
   }
?> 

输出

这将产生以下结果 -

The absolute path is: /home/PHP/PhpProject/index.php

示例

这是一个使用realpath()函数的另一个示例,在这个示例中,我们将一个空字符串作为路径。由于路径是空字符串,realpath() 假设它是当前目录。

<?php
   // Empty string
   $path = '';
   $absolutePath = realpath($path);

   if ($absolutePath !== false) {
      echo "The absolute path is: " . $absolutePath;
   } else {
      echo "The path does not exist.";
   }
?> 

输出

这将生成以下输出 -

/home/PHP/PhpProject

示例

这是一个使用realpath()函数解析包含父目录(..)的路径的示例。

<?php
   $path = '../../var/www';
   $absolutePath = realpath($path);

   if ($absolutePath !== false) {
      echo "The absolute path is: " . $absolutePath;
   } else {
      echo "The file does not exist.";
   }
?> 

输出

这将导致以下输出 -

The absolute path is: /var/www

重要提示

在使用realpath()函数时,请记住以下一些要点 -

  • 正在运行的脚本必须对层次结构中的所有目录具有可执行权限;否则,realpath() 将返回 false。
  • 对于不区分大小写的文件系统,realpath() 可以或可能无法规范化字符大小写。
  • 在 Windows 上,文件夹的连接点和符号链接仅扩展一级。
  • 由于 PHP 的整数类型是有符号的,并且许多平台使用 32 位整数,因此对于大于 2GB 的文件,许多文件系统函数可能会产生意外的结果。

总结

realpath()方法是一个获取绝对路径的内置函数。这可以帮助确保您正在使用正确的文件或目录,同时降低潜在的安全风险。

php_function_reference.htm
广告