API16

API16:JPath/find

From Joomla! Documentation

Description

Searches the directory paths for a given file.



Syntax

static find($paths, $file)
Parameter Name Default Value Description
$paths $path An path or array of path to search in
$file $file The file name to look for.

Returns

mixed The full path and file name for the target file, or boolean false if the file is not found in any of the paths.

Defined in

libraries/joomla/filesystem/path.php

Importing

jimport( 'joomla.filesystem.path' );

Source Body

public static function find($paths, $file)
{
        settype($paths, 'array'); //force to array

        // start looping through the path set
        foreach ($paths as $path)
        {
                // get the path to the file
                $fullname = $path.DS.$file;

                // is the path based on a stream?
                if (strpos($path, '://') === false)
                {
                        // not a stream, so do a realpath() to avoid directory
                        // traversal attempts on the local file system.
                        $path = realpath($path); // needed for substr() later
                        $fullname = realpath($fullname);
                }

                // the substr() check added to make sure that the realpath()
                // results in a directory registered so that
                // non-registered directores are not accessible via directory
                // traversal attempts.
                if (file_exists($fullname) && substr($fullname, 0, strlen($path)) == $path) {
                        return $fullname;
                }
        }

        // could not find the file in the set of paths
        return false;
}



Examples

Code Examples