!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\dmz\php\pear\System\Folders\   drwxrwxrwx
Free 4.1 GB of 39.52 GB (10.37%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Cached.php (12.46 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
* Provides a cached version of System_Folders.
* It also has methods to read folder settings from an ini file.
*
* Simpe example:
*     require_once 'System/Folders/Cached.php';
*     $sf = new System_Folders_Cached();
*
*     //load the stored settings from last time
*     $sf->loadFromFile();
*     echo $sf->getHome();
*
*     //Set an own documents directory
*     $sf->setDocuments('/home/cweiske/MyDocuments/');
*     //Save the settings for next time
*     $sf->saveToFile();
*
* PHP version 4
*
* @category System
* @package  System_Folders
* @author   Christian Weiske <cweiske@php.net>
* @license  http://www.gnu.org/copyleft/lesser.html LGPL
* @version  CVS: $Id$
* @link     http://pear.php.net/package/System_Folders
*/

require_once 'System/Folders.php';
require_once 
'Config.php';
require_once 
'Config/Container.php';

/**
* Provides a cached version of System_Folders.
* It also has methods to read folder settings from an ini file.
*
* Be very careful when overriding the AppData setting with
*  setAppData()! When loading a config file without specifying the file
*  name, the default app data directory will be used. After loading,
*  the file will be saved to the new app data directory, thus it won't
*  be available the next time, as the app data folder is the old one again.
*
* @category System
* @package  System_Folders
* @author   Christian Weiske <cweiske@php.net>
* @license  http://www.gnu.org/copyleft/lesser.html LGPL
* @link     http://pear.php.net/package/System_Folders
*/
class System_Folders_Cached extends System_Folders
{
    
/**
    * The cached paths will be hold here.
    *
    * @access protected
    * @var    array
    */
    
var $arCache = array();

    
/**
    * The settings that are available.
    *
    * @access protected
    * @var    array
    */
    
var $arSettings = array(
        
'AllUsers''AppData''Desktop''Documents''Home',
        
'Programs''Temp''SharedDocuments''Windows'
    
);



    
/**
     * Create a new instance
     */
    
function System_Folders_Cached()
    {
        
parent::System_Folders();
    }
//function System_Folders_Cached()



    /**
    * Loads the directories from an ini file.
    * If you don't specify the config file, it will be determined
    *  automatically.
    *
    * @param string $strFile The file to load the data from (ini file)
    *
    * @return mixed True on success, PEAR_Error on failure
    *
    * @access public
    */
    
function loadFromFile($strFile null)
    {
        
$strFile $this->getDefaultConfigFile();
        if (!
file_exists($strFile)) {
            
//Not existing config file isn't an error
            
return true;
        }
        
$conf = new Config();
        
$root =& $conf->parseConfig($strFile'inifile');

        if (
PEAR::isError($root)) {
            return 
$root;
        }

        
$arSettings $root->toArray();
        if (!isset(
$arSettings['root']['paths'])) {
            return 
true;
        }

        foreach (
$arSettings['root']['paths'] as $strId => $strValue) {
            if (
$strValue != '') {
                
$this->arCache[$strId] = $strValue;
            }
        }

        return 
true;
    }
//function loadFromFile($strFile = null)



    /**
    * Saves the folders into a config file that can be edited by hand.
    * If you don't specify the config file, it will be determined
    *  automatically.
    * Values that are NULL won't be saved.
    *
    * @param string  $strFile          The file to save the data into
    *                                  (ini file)
    * @param boolean $bSaveAllSettings If all settings shall be saved
    *                         that can be loaded, or only that settings,
    *                         that have been retrieved by the user
    *
    * @return mixed True on success, PEAR_Error on failure
    *
    * @access public
    */
    
function saveToFile($strFile null$bSaveAllSettings true)
    {
        
$conf  =& new Config_Container('section''paths');

        if (
$bSaveAllSettings) {
            foreach (
$this->arSettings as $strSetting) {
                
$strFunction 'get' $strSetting;
                
$strValue $this->$strFunction();
                
$conf->createDirective(strtolower($strSetting), $strValue);
            }
        } else {
            foreach (
$this->arCache as $strId => $strValue) {
                
$conf->createDirective($strId$strValue);
            }
        }

        
$config = new Config();
        
$config->setRoot($conf);
        return 
$config->writeConfig($this->getDefaultConfigFile(), 'inifile');
    }
//function saveToFile($strFile = null, $bSaveAllSettings = true)



    /**
    * Returns the path to the default config file.
    * It the one that's used if no filename is passed to the
    *  saveToFile/loadFromFile methods.
    *
    * @return string The filename
    *
    * @access public
    */
    
function getDefaultConfigFile()
    {
        return 
$this->getAppData() . '/.net.php.pear.system.folders';
    }
//function getDefaultConfigFile()



    /**
    * Returns a cached value.
    * If the cache doesn't exist, the cached value is empty or null,
    * the System_Folders method for the key is called to get the value.
    *
    * @param string $strKey The id of the value to get
    *
    * @return string The directory
    *
    * @access protected
    */
    
function getCachedValue($strKey)
    {
        
$strKeyLower strtolower($strKey);
        if (!isset(
$this->arCache[$strKeyLower])) {
            
$strFunction 'get' $strKey;
            
$this->arCache[$strKeyLower] = parent::$strFunction();
        }

        return 
$this->arCache[$strKeyLower];
    }
//function getCachedValue($strKey)



    /**
    * Sets the cache of the given key to the given value.
    * Passing NULL removes the cache entry.
    *
    * @param string $strKey   Id of the value to get
    * @param string $strValue Value to set.
    *
    * @return void
    *
    * @access protected
    */
    
function setCachedValue($strKey$strValue)
    {
        if (
$strValue === null) {
            unset(
$this->arCache[strtolower($strKey)]);
        } else {
            
$this->arCache[strtolower($strKey)] = $strValue;
        }
    }
//function setCachedValue($strKey, $strValue)



    /*
    * Overriding the parent's methods to cache them
    */



    /**
    * Cached version of getAllUsers().
    *
    * @return string The all users directory
    *
    * @access public
    *
    * @see System_Folders::getAllUsers()
    */
    
function getAllUsers()
    {
        return 
$this->getCachedValue('AllUsers');
    }
//function getAllUsers()



    /**
    * Cached version of getAppData().
    *
    * @return string The application data directory
    *
    * @access public
    *
    * @see System_Folders::getAppData()
    */
    
function getAppData()
    {
        return 
$this->getCachedValue('AppData');
    }
//function getAppData()



    /**
    * Cached version of getDesktop().
    *
    * @return string The desktop directory
    *
    * @access public
    *
    * @see System_Folders::getDesktop()
    */
    
function getDesktop()
    {
        return 
$this->getCachedValue('Desktop');
    }
//function getDesktop()



    /**
    * Cached version of getDocuments().
    *
    * @return string The documents directory
    *
    * @access public
    *
    * @see System_Folders::getDocuments()
    */
    
function getDocuments()
    {
        return 
$this->getCachedValue('Documents');
    }
//function getDocuments()



    /**
    * Cached version of getHome().
    *
    * @return string The home directory
    *
    * @access public
    *
    * @see System_Folders::getHome()
    */
    
function getHome()
    {
        return 
$this->getCachedValue('Home');
    }
//function getHome()



    /**
    * Cached version of getPrograms().
    *
    * @return string The programs directory
    *
    * @access public
    *
    * @see System_Folders::getPrograms()
    */
    
function getPrograms()
    {
        return 
$this->getCachedValue('Programs');
    }
//function getPrograms()



    /**
    * Cached version of getTemp().
    *
    * @return string The temporary directory
    *
    * @access public
    *
    * @see System_Folders::getTemp()
    */
    
function getTemp()
    {
        return 
$this->getCachedValue('Temp');
    }
//function getTemp()



    /**
    * Cached version of getSharedDocuments().
    *
    * @return string The shared documents directory
    *
    * @access public
    *
    * @see System_Folders::getSharedDocuments()
    */
    
function getSharedDocuments()
    {
        return 
$this->getCachedValue('SharedDocuments');
    }
//function getSharedDocuments()



    /**
    * Cached version of getWindows().
    *
    * @return string The windows directory
    *
    * @access public
    *
    * @see System_Folders::getWindows()
    */
    
function getWindows()
    {
        return 
$this->getCachedValue('Windows');
    }
//function getWindows()



    /*
    * Setter methods
    */



    /**
    * Sets an own all users directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new all users directory
    *
    * @return void
    *
    * @access public
    * @see    getAllUsers()
    */
    
function setAllUsers($value)
    {
        
$this->setCachedValue('AllUsers'$value);
    }
//function setAllUsers($value)



    /**
    * Sets an own application data directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new app data directory
    *
    * @return void
    *
    * @access public
    * @see    getAppData()
    */
    
function setAppData($value)
    {
        
$this->setCachedValue('AppData'$value);
    }
//function setAppData($value)



    /**
    * Sets an own desktop directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new desktop directory
    *
    * @return void
    *
    * @access public
    * @see    getDesktop()
    */
    
function setDesktop($value)
    {
        
$this->setCachedValue('Desktop'$value);
    }
//function setDesktop($value)



    /**
    * Sets an own documents directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new documents directory
    *
    * @return void
    *
    * @access public
    * @see    getDocuments()
    */
    
function setDocuments($value)
    {
        
$this->setCachedValue('Documents'$value);
    }
//function setDocuments($value)



    /**
    * Sets an own home directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new home directory
    *
    * @return void
    *
    * @access public
    * @see    getHome()
    */
    
function setHome($value)
    {
        
$this->setCachedValue('Home'$value);
    }
//function setHome($value)



    /**
    * Sets an own programs directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new programs directory
    *
    * @return void
    *
    * @access public
    * @see    getPrograms()
    */
    
function setPrograms($value)
    {
        
$this->setCachedValue('Programs'$value);
    }
//function setPrograms($value)



    /**
    * Sets an own temp directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new temp directory
    *
    * @return void
    *
    * @access public
    * @see    getTemp()
    */
    
function setTemp($value)
    {
        
$this->setCachedValue('Temp'$value);
    }
//function setTemp($value)



    /**
    * Sets an own shared documents directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new shared documents directory
    *
    * @return void
    *
    * @access public
    * @see    getSharedDocuments()
    */
    
function setSharedDocuments($value)
    {
        
$this->setCachedValue('SharedDocuments'$value);
    }
//function setSharedDocuments($value)



    /**
    * Sets an own windows directory.
    * Set it to NULL to deactivate saving and
    *  remove the value from the cache.
    *
    * @param string $value The new windows directory
    *
    * @return void
    *
    * @access public
    * @see    getWindows()
    */
    
function setWindows($value)
    {
        
$this->setCachedValue('Windows'$value);
    }
//function setWindows($value)

}//class System_Folders_Cached extends System_Folders
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--