function drupal_realpath

Same name and namespace in other branches
  1. 8.9.x core/includes/ \drupal_realpath()

Resolves the absolute filepath of a local URI or filepath.

The use of drupal_realpath() is discouraged, because it does not work for remote URIs. Except in rare cases, URIs should not be manually resolved.

Only use this function if you know that the stream wrapper in the URI uses the local file system, and you need to pass an absolute path to a function that is incompatible with stream URIs.


string $uri: A stream wrapper URI or a filepath, possibly including one or more symbolic links.

Return value

string|false The absolute local filepath (with no symbolic links), or FALSE on failure.

See also


Related topics

51 calls to drupal_realpath()
archiver_get_archiver in includes/
Creates the appropriate archiver for the specified file.
ColorTestCase::_testColor in modules/color/color.test
Tests the Color module functionality using the given theme.
CommentPreviewTest::testCommentPreview in modules/comment/comment.test
Test comment preview.
DrupalErrorHandlerTestCase::testErrorHandler in modules/simpletest/tests/error.test
Test the error handler.
DrupalErrorHandlerTestCase::testExceptionHandler in modules/simpletest/tests/error.test
Test the exception handler.

... See full list


includes/, line 2418


function drupal_realpath($uri) {
    // If this URI is a stream, pass it off to the appropriate stream wrapper.
    // Otherwise, attempt PHP's realpath. This allows use of drupal_realpath even
    // for unmanaged files outside of the stream wrapper interface.
    if ($wrapper = file_stream_wrapper_get_instance_by_uri($uri)) {
        return $wrapper->realpath();
    elseif (!empty($uri)) {
        return realpath($uri);
    return FALSE;

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.