PHP Filesystem realpath() Function



The PHP Filesystem realpath() function is used to return the absolute pathname. This function can remove all symbolic links (like '/./', '/../' and extra '/') and return the absolute pathname. This function can return false on failure.

When using realpath(), you must provide a path. Alternatively, you can use an empty string (""). If you do this, the path will be changed to the current directory.

Syntax

Below is the syntax of the PHP Filesystem realpath() function −

string realpath ( string $path )

Parameters

Below is the only required parameter of the realpath() function −

Sr.No Parameter & Description
1

$path(Required)

It is the path to the file or directory you want to resolve.

Return Value

The function realpath() returns the absolute pathname, and FALSE on failure.

PHP Version

The realpath() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7 and PHP 8.

Example

Here is the basic example to see how the PHP Filesystem realpath() function is used to get the absolute path of the given path.

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

Output

Here is the outcome of the following code −

C:\PhpProject\index.php

Example

Here is the another example to show the usage of realpath() function to get the absolute path of the given file path and also handle errors while using it.

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

Output

This will produce the following result −

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

Example

Here is one more example to use the realpath() function and in this example we will give an empty string as path. As the path is an empty string, realpath() assumes it is the current directory.

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

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

Output

This will generate the below output −

/home/PHP/PhpProject

Example

Here is one more example to use realpath() function to resolve a path with parent directory (..).

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

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

Output

This will lead to the following output −

The absolute path is: /var/www

Important Notes

Here are some important point to keep in mind while working with realpath() function −

  • The running script must have executable rights to all directories in the hierarchy; otherwise, realpath() returns false.
  • For case-insensitive filesystem, realpath() can or can not normalize character case.
  • On Windows, junctions and symbolic links to folders are just expanded by a single degree.
  • Because PHP's integer type is signed and many platforms utilize 32-bit integers, many filesystem functions can give unexpected results for files larger than 2GB.

Summary

The realpath() method is a built-in function to get the absolute path. This can help ensure you are working with a correct file or directory while reducing possible security risks.

php_function_reference.htm
Advertisements