realpath

Returns canonicalized absolute pathname

&reftitle.description; ``string``false```realpath` `string` `path`

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

&reftitle.parameters;

`path`

- The path being checked.

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

&reftitle.returnvalues;

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.

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

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

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.

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

&fs.file.32bit;
&reftitle.examples;

### `realpath` example

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

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

&example.outputs;

    /etc/passwd
    /tmp

### `realpath` on Windows

On windows `realpath` will change unix style paths to windows style.

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

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

&example.outputs;

    C:\WINDOWS\System32
    C:\Program Files

&reftitle.seealso;

- `basename`
- `dirname`
- `pathinfo`