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