⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php/** * PEAR_Common, the base class for the PEAR Installer * * PHP versions 4 and 5 * * LICENSE: This source file is subject to version 3.0 of the PHP license * that is available through the world-wide-web at the following URI: * http://www.php.net/license/3_0.txt.  If you did not receive a copy of * the PHP License and are unable to obtain it through the web, please * send a note to license@php.net so we can mail you a copy immediately. * * @category   pear * @package    PEAR * @author     Stig Bakken <ssb@php.net> * @author     Tomas V. V. Cox <cox@idecnet.com> * @author     Greg Beaver <cellog@php.net> * @copyright  1997-2005 The PHP Group * @license    http://www.php.net/license/3_0.txt  PHP License 3.0 * @version    CVS: $Id: Common.php,v 1.81.2.19.2.2 2006/05/22 10:19:33 cellog Exp $ * @link       http://pear.php.net/package/PEAR * @since      File available since Release 0.1.0 * @deprecated File deprecated since Release 1.4.0a1 *//** * Include error handling */require_once 'PEAR.php';// {{{ constants and globals/** * PEAR_Common error when an invalid PHP file is passed to PEAR_Common::analyzeSourceCode() */define('PEAR_COMMON_ERROR_INVALIDPHP', 1);define('_PEAR_COMMON_PACKAGE_NAME_PREG', '[A-Za-z][a-zA-Z0-9_]+');define('PEAR_COMMON_PACKAGE_NAME_PREG', '/^' . _PEAR_COMMON_PACKAGE_NAME_PREG . '$/');// this should allow: 1, 1.0, 1.0RC1, 1.0dev, 1.0dev123234234234, 1.0a1, 1.0b1, 1.0pl1define('_PEAR_COMMON_PACKAGE_VERSION_PREG', '\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?');define('PEAR_COMMON_PACKAGE_VERSION_PREG', '/^' . _PEAR_COMMON_PACKAGE_VERSION_PREG . '$/i');// XXX far from perfect :-)define('_PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '(' . _PEAR_COMMON_PACKAGE_NAME_PREG .    ')(-([.0-9a-zA-Z]+))?');define('PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_PACKAGE_DOWNLOAD_PREG .    '$/');define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9\.]+');define('PEAR_CHANNELS_NAME_PREG', '/^' . _PEAR_CHANNELS_NAME_PREG . '$/');// this should allow any dns or IP address, plus a path - NO UNDERSCORES ALLOWEDdefine('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(\/[a-zA-Z0-9\-]+)*');define('PEAR_CHANNELS_SERVER_PREG', '/^' . _PEAR_CHANNELS_SERVER_PREG . '$/i');define('_PEAR_CHANNELS_PACKAGE_PREG',  '(' ._PEAR_CHANNELS_SERVER_PREG . ')\/('         . _PEAR_COMMON_PACKAGE_NAME_PREG . ')');define('PEAR_CHANNELS_PACKAGE_PREG', '/^' . _PEAR_CHANNELS_PACKAGE_PREG . '$/i');define('_PEAR_COMMON_CHANNEL_DOWNLOAD_PREG', '(' . _PEAR_CHANNELS_NAME_PREG . ')::('    . _PEAR_COMMON_PACKAGE_NAME_PREG . ')(-([.0-9a-zA-Z]+))?');define('PEAR_COMMON_CHANNEL_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_CHANNEL_DOWNLOAD_PREG . '$/');/** * List of temporary files and directories registered by * PEAR_Common::addTempFile(). * @var array */$GLOBALS['_PEAR_Common_tempfiles'] = array();/** * Valid maintainer roles * @var array */$GLOBALS['_PEAR_Common_maintainer_roles'] = array('lead','developer','contributor','helper');/** * Valid release states * @var array */$GLOBALS['_PEAR_Common_release_states'] = array('alpha','beta','stable','snapshot','devel');/** * Valid dependency types * @var array */$GLOBALS['_PEAR_Common_dependency_types'] = array('pkg','ext','php','prog','ldlib','rtlib','os','websrv','sapi');/** * Valid dependency relations * @var array */$GLOBALS['_PEAR_Common_dependency_relations'] = array('has','eq','lt','le','gt','ge','not', 'ne');/** * Valid file roles * @var array */$GLOBALS['_PEAR_Common_file_roles'] = array('php','ext','test','doc','data','src','script');/** * Valid replacement types * @var array */$GLOBALS['_PEAR_Common_replacement_types'] = array('php-const', 'pear-config', 'package-info');/** * Valid "provide" types * @var array */$GLOBALS['_PEAR_Common_provide_types'] = array('ext', 'prog', 'class', 'function', 'feature', 'api');/** * Valid "provide" types * @var array */$GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'pre-uninstall', 'post-uninstall', 'pre-build', 'post-build', 'pre-configure', 'post-configure', 'pre-setup', 'post-setup');// }}}/** * Class providing common functionality for PEAR administration classes. * @category   pear * @package    PEAR * @author     Stig Bakken <ssb@php.net> * @author     Tomas V. V. Cox <cox@idecnet.com> * @author     Greg Beaver <cellog@php.net> * @copyright  1997-2005 The PHP Group * @license    http://www.php.net/license/3_0.txt  PHP License 3.0 * @version    Release: @package_version@ * @link       http://pear.php.net/package/PEAR * @since      Class available since Release 1.4.0a1 * @deprecated This class will disappear, and its components will be spread *             into smaller classes, like the AT&T breakup, as of Release 1.4.0a1 */class PEAR_Common extends PEAR{    // {{{ properties    /** stack of elements, gives some sort of XML context */    var $element_stack = array();    /** name of currently parsed XML element */    var $current_element;    /** array of attributes of the currently parsed XML element */    var $current_attributes = array();    /** assoc with information about a package */    var $pkginfo = array();    /**     * User Interface object (PEAR_Frontend_* class).  If null,     * the log() method uses print.     * @var object     */    var $ui = null;    /**     * Configuration object (PEAR_Config).     * @var object     */    var $config = null;    var $current_path = null;    /**     * PEAR_SourceAnalyzer instance     * @var object     */    var $source_analyzer = null;    /**     * Flag variable used to mark a valid package file     * @var boolean     * @access private     */    var $_validPackageFile;    // }}}    // {{{ constructor    /**     * PEAR_Common constructor     *     * @access public     */    function PEAR_Common()    {        parent::PEAR();        $this->config = &PEAR_Config::singleton();        $this->debug = $this->config->get('verbose');    }    // }}}    // {{{ destructor    /**     * PEAR_Common destructor     *     * @access private     */    function _PEAR_Common()    {        // doesn't work due to bug #14744        //$tempfiles = $this->_tempfiles;        $tempfiles =& $GLOBALS['_PEAR_Common_tempfiles'];        while ($file = array_shift($tempfiles)) {            if (@is_dir($file)) {                if (!class_exists('System')) {                    require_once 'System.php';                }                System::rm(array('-rf', $file));            } elseif (file_exists($file)) {                unlink($file);            }        }    }    // }}}    // {{{ addTempFile()    /**     * Register a temporary file or directory.  When the destructor is     * executed, all registered temporary files and directories are     * removed.     *     * @param string  $file  name of file or directory     *     * @return void     *     * @access public     */    function addTempFile($file)    {        if (!class_exists('PEAR_Frontend')) {            require_once 'PEAR/Frontend.php';        }        PEAR_Frontend::addTempFile($file);    }    // }}}    // {{{ mkDirHier()    /**     * Wrapper to System::mkDir(), creates a directory as well as     * any necessary parent directories.     *     * @param string  $dir  directory name     *     * @return bool TRUE on success, or a PEAR error     *     * @access public     */    function mkDirHier($dir)    {        $this->log(2, "+ create dir $dir");        if (!class_exists('System')) {            require_once 'System.php';        }        return System::mkDir(array('-p', $dir));    }    // }}}    // {{{ log()    /**     * Logging method.     *     * @param int    $level  log level (0 is quiet, higher is noisier)     * @param string $msg    message to write to the log     *     * @return void     *     * @access public     * @static     */    function log($level, $msg, $append_crlf = true)    {        if ($this->debug >= $level) {            if (!class_exists('PEAR_Frontend')) {                require_once 'PEAR/Frontend.php';            }            $ui = &PEAR_Frontend::singleton();            if (is_a($ui, 'PEAR_Frontend')) {                $ui->log($msg, $append_crlf);            } else {                print "$msg\n";            }        }    }    // }}}    // {{{ mkTempDir()    /**     * Create and register a temporary directory.     *     * @param string $tmpdir (optional) Directory to use as tmpdir.     *                       Will use system defaults (for example     *                       /tmp or c:\windows\temp) if not specified     *     * @return string name of created directory     *     * @access public     */    function mkTempDir($tmpdir = '')    {        if ($tmpdir) {            $topt = array('-t', $tmpdir);        } else {            $topt = array();        }        $topt = array_merge($topt, array('-d', 'pear'));        if (!class_exists('System')) {            require_once 'System.php';        }        if (!$tmpdir = System::mktemp($topt)) {            return false;        }        $this->addTempFile($tmpdir);        return $tmpdir;    }    // }}}    // {{{ setFrontendObject()    /**     * Set object that represents the frontend to be used.     *     * @param  object Reference of the frontend object     * @return void     * @access public     */    function setFrontendObject(&$ui)    {        $this->ui = &$ui;    }    // }}}    // {{{ infoFromTgzFile()    /**     * Returns information about a package file.  Expects the name of     * a gzipped tar file as input.     *     * @param string  $file  name of .tgz file     *     * @return array  array with package information     *     * @access public     * @deprecated use PEAR_PackageFile->fromTgzFile() instead     *     */    function infoFromTgzFile($file)    {        $packagefile = &new PEAR_PackageFile($this->config);        $pf = &$packagefile->fromTgzFile($file, PEAR_VALIDATE_NORMAL);        if (PEAR::isError($pf)) {            $errs = $pf->getUserinfo();            if (is_array($errs)) {                foreach ($errs as $error) {                    $e = $this->raiseError($error['message'], $error['code'], null, null, $error);                }            }            return $pf;        }        return $this->_postProcessValidPackagexml($pf);    }    // }}}    // {{{ infoFromDescriptionFile()    /**     * Returns information about a package file.  Expects the name of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -