PHP | realpath 函数

怎样返回规范化的绝对路径名

最近更新时间 2021-01-19 21:05:34

realpath 函数返回规范化的绝对路径名。

realpath() 可用于安全检查,避免错误操作系统文件。

函数定义

realpath ( string $path ) : string
// 源文件位于:ext/standard/file.c
# 函数定义

PHP_FUNCTION(realpath)
{
  char *filename;
  size_t filename_len;
  char resolved_path_buff[MAXPATHLEN];

  ZEND_PARSE_PARAMETERS_START(1, 1)
    Z_PARAM_PATH(filename, filename_len)
  ZEND_PARSE_PARAMETERS_END();

  if (VCWD_REALPATH(filename, resolved_path_buff)) {
    if (php_check_open_basedir(resolved_path_buff)) {
      RETURN_FALSE;
    }

#ifdef ZTS
    if (VCWD_ACCESS(resolved_path_buff, F_OK)) {
      RETURN_FALSE;
    }
#endif
    RETURN_STRING(resolved_path_buff);
  } else {
    RETURN_FALSE;
  }
}

参数

  • checkpath - 要检查的路径。

返回值

  • checkint - 返回文件真实路径。错误或文件不存在时返回 false。

示例1: - 使用 realpath() 函数返回规范化的绝对路径名。

<?php
/**
 * PHP realpath() 函数返回规范化的绝对路径名。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 路径
$path = "./../index.php";

// 获取文件真实路径
echo realpath($path);
/data/sites/wwwroot/index.php
rss_feed