php8.5
Home/ Manual/ filesystem / functions/ realpath

realpath

PHP function Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Returns canonicalized absolute pathname

Description

realpath(string $path): string|false

realpath() expands all symbolic links and resolves references to /./, /../ and extra / characters in the input path and returns the canonicalized absolute pathname.

Parameters

path

The path being checked.

Note

Whilst a path must be supplied, the value can be an empty string. In this case, the value is interpreted as the current directory.

Return Values

Returns the canonicalized absolute pathname on success. The resulting path will have no symbolic link, /./ or /../ components. Trailing delimiters, such as \ and /, are also removed.

realpath() returns false on failure, e.g. if the file does not exist.

Note

The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return false.

Note

For case-insensitive filesystems realpath() may or may not normalize the character case.

Note

The function realpath() will not work for a file which is inside a Phar as such path would be a virtual path, not a real one.

Note

On Windows, junctions and symbolic links to directories are only expanded by one level.

32bit

Examples

realpath() example

php
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

The above example will output:

output
/etc/passwd
/tmp

realpath() on Windows

On windows realpath() will change unix style paths to windows style.

php
<?php
echo realpath('/windows/system32'), PHP_EOL;

echo realpath('C:\Program Files\\'), PHP_EOL;
?>

The above example will output:

output
C:\WINDOWS\System32
C:\Program Files

See Also

Source: reference/filesystem/functions/realpath.xml · from the official PHP manual (php/doc-en)