Source for file path.php
Documentation is available at path.php
 * @package     Joomla.Platform  
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.  
 * @license     GNU General Public License version 2 or later; see LICENSE  
    // Define a string constant for the root directory of the file system in native format  
    define('JPATH_ROOT', JPath::clean(JPATH_SITE));  
 * @package     Joomla.Platform  
     * Checks if a path's permissions can be changed.  
     * @param   string  $path  Path to check.  
     * @return  boolean  True if path can have mode changed.  
            if (@chmod($path, $perms ^ 
0001))  
     * Chmods files and directories recursively to given permissions.  
     * @param   string  $path        Root path to begin changing mode [without trailing slash].  
     * @param   string  $filemode    Octal representation of the value to change file mode to [null = no change].  
     * @param   string  $foldermode  Octal representation of the value to change folder mode to [null = no change].  
     * @return  boolean  True if successful [one fail means the whole operation failed].  
    public static function setPermissions($path, $filemode = 
'0644', $foldermode = 
'0755')  
        // Initialise return value  
                if ($file != 
'.' && 
$file != 
'..')  
                    $fullpath = 
$path . 
'/' . 
$file;  
                        if (!self::setPermissions($fullpath, $filemode, $foldermode))  
     * Get the permissions of the file/folder at a given path.  
     * @param   string  $path  The path of a file/folder.  
     * @return  string  Filesystem permissions.  
        $path = 
self::clean($path);  
        for ($i = 
0; $i < 
3; $i++
)  
            $parsed_mode .= 
($mode{$i} & 04) ? 
"r" : 
"-";  
            $parsed_mode .= 
($mode{$i} & 02) ? 
"w" : 
"-";  
            $parsed_mode .= 
($mode{$i} & 01) ? 
"x" : 
"-";  
     * Checks for snooping outside of the file system root.  
     * @param   string  $path  A file system path to check.  
     * @return  string  A cleaned version of the path or exit on error.  
    public static function check($path)  
        if (strpos($path, '..') !== 
false)  
            throw 
new Exception('JPath::check Use of relative paths not permitted', 20); 
        $path = 
self::clean($path);  
            throw 
new Exception('JPath::check Snooping out of bounds @ ' . 
$path, 20); 
     * Function to strip additional / or \ in a path name.  
     * @param   string  $path  The path to clean.  
     * @param   string  $ds    Directory separator (optional).  
     * @return  string  The cleaned path.  
     * @throws  UnexpectedValueException  
    public static function clean($path, $ds = 
DIRECTORY_SEPARATOR)  
            throw 
new UnexpectedValueException('JPath::clean: $path is not a string.'); 
        // Remove double slashes and backslashes and convert all slashes and backslashes to DIRECTORY_SEPARATOR  
        // If dealing with a UNC path don't forget to prepend the path with a backslash.  
        elseif (($ds == 
'\\') && 
($path[0] == 
'\\' ) && 
( $path[1] == 
'\\' ))  
     * Method to determine if script owns the path.  
     * @param   string  $path  Path to check ownership.  
     * @return  boolean  True if the php script owns the path passed.  
    public static function isOwner($path)  
        $ssp = 
ini_get('session.save_path');  
        // Try to find a writable directory  
            $test = 
$dir . 
'/' . 
$tmp;  
     * Searches the directory paths for a given file.  
     * @param   mixed   $paths  An path string or array of path strings to search in  
     * @param   string  $file   The file name to look for.  
     * @return  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.  
    public static function find($paths, $file)  
        if (!is_array($paths) && 
!($paths instanceof 
Iterator))  
        // Start looping through the path set  
        foreach ($paths as $path)  
            // Get the path to the file  
            $fullname = 
$path . 
'/' . 
$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.  
                // Needed for substr() later  
             * The substr() check added to make sure that the realpath()  
             * results in a directory registered so that  
             * non-registered directories are not accessible via directory  
        // Could not find the file in the set of paths  
 
 
	
		Documentation generated on Tue, 19 Nov 2013 15:10:23 +0100 by phpDocumentor 1.4.3