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

📄 system.php

📁 FP2 CRM code+Mysql DB
💻 PHP
📖 第 1 页 / 共 2 页
字号:
    * Note: as the class use fopen, urls should work also (test that)    *    * @param    string  $args   the arguments    * @return   boolean true on success    * @access   public    */    function &cat($args)    {        $ret = null;        $files = array();        if (!is_array($args)) {            $args = preg_split('/\s+/', $args);        }        for($i=0; $i < count($args); $i++) {            if ($args[$i] == '>') {                $mode = 'wb';                $outputfile = $args[$i+1];                break;            } elseif ($args[$i] == '>>') {                $mode = 'ab+';                $outputfile = $args[$i+1];                break;            } else {                $files[] = $args[$i];            }        }        if (isset($mode)) {            if (!$outputfd = fopen($outputfile, $mode)) {                $err = System::raiseError("Could not open $outputfile");                return $err;            }            $ret = true;        }        foreach ($files as $file) {            if (!$fd = fopen($file, 'r')) {                System::raiseError("Could not open $file");                continue;            }            while ($cont = fread($fd, 2048)) {                if (isset($outputfd)) {                    fwrite($outputfd, $cont);                } else {                    $ret .= $cont;                }            }            fclose($fd);        }        if (@is_resource($outputfd)) {            fclose($outputfd);        }        return $ret;    }    /**    * Creates temporary files or directories. This function will remove    * the created files when the scripts finish its execution.    *    * Usage:    *   1) $tempfile = System::mktemp("prefix");    *   2) $tempdir  = System::mktemp("-d prefix");    *   3) $tempfile = System::mktemp();    *   4) $tempfile = System::mktemp("-t /var/tmp prefix");    *    * prefix -> The string that will be prepended to the temp name    *           (defaults to "tmp").    * -d     -> A temporary dir will be created instead of a file.    * -t     -> The target dir where the temporary (file|dir) will be created. If    *           this param is missing by default the env vars TMP on Windows or    *           TMPDIR in Unix will be used. If these vars are also missing    *           c:\windows\temp or /tmp will be used.    *    * @param   string  $args  The arguments    * @return  mixed   the full path of the created (file|dir) or false    * @see System::tmpdir()    * @access  public    */    function mktemp($args = null)    {        static $first_time = true;        $opts = System::_parseArgs($args, 't:d');        if (PEAR::isError($opts)) {            return System::raiseError($opts);        }        foreach($opts[0] as $opt) {            if($opt[0] == 'd') {                $tmp_is_dir = true;            } elseif($opt[0] == 't') {                $tmpdir = $opt[1];            }        }        $prefix = (isset($opts[1][0])) ? $opts[1][0] : 'tmp';        if (!isset($tmpdir)) {            $tmpdir = System::tmpdir();        }        if (!System::mkDir("-p $tmpdir")) {            return false;        }        $tmp = tempnam($tmpdir, $prefix);        if (isset($tmp_is_dir)) {            unlink($tmp); // be careful possible race condition here            if (!call_user_func('mkdir', $tmp, 0700)) {                return System::raiseError("Unable to create temporary directory $tmpdir");            }        }        $GLOBALS['_System_temp_files'][] = $tmp;        if ($first_time) {            PEAR::registerShutdownFunc(array('System', '_removeTmpFiles'));            $first_time = false;        }        return $tmp;    }    /**    * Remove temporary files created my mkTemp. This function is executed    * at script shutdown time    *    * @access private    */    function _removeTmpFiles()    {        if (count($GLOBALS['_System_temp_files'])) {            $delete = $GLOBALS['_System_temp_files'];            array_unshift($delete, '-r');            System::rm($delete);        }    }    /**    * Get the path of the temporal directory set in the system    * by looking in its environments variables.    * Note: php.ini-recommended removes the "E" from the variables_order setting,    * making unavaible the $_ENV array, that s why we do tests with _ENV    *    * @return string The temporal directory on the system    */    function tmpdir()    {        if (OS_WINDOWS) {            if ($var = isset($_ENV['TEMP']) ? $_ENV['TEMP'] : getenv('TEMP')) {                return $var;            }            if ($var = isset($_ENV['TMP']) ? $_ENV['TMP'] : getenv('TMP')) {                return $var;            }            if ($var = isset($_ENV['windir']) ? $_ENV['windir'] : getenv('windir')) {                return $var;            }            return getenv('SystemRoot') . '\temp';        }        if ($var = isset($_ENV['TMPDIR']) ? $_ENV['TMPDIR'] : getenv('TMPDIR')) {            return $var;        }        return '/tmp';    }    /**    * The "which" command (show the full path of a command)    *    * @param string $program The command to search for    * @return mixed A string with the full path or false if not found    * @author Stig Bakken <ssb@php.net>    */    function which($program, $fallback = false)    {        // is_executable() is not available on windows        if (OS_WINDOWS) {            $pear_is_executable = 'is_file';        } else {            $pear_is_executable = 'is_executable';        }        // full path given        if (basename($program) != $program) {            return (@$pear_is_executable($program)) ? $program : $fallback;        }        // XXX FIXME honor safe mode        $path_delim = OS_WINDOWS ? ';' : ':';        $exe_suffixes = OS_WINDOWS ? array('.exe','.bat','.cmd','.com') : array('');        $path_elements = explode($path_delim, getenv('PATH'));        foreach ($exe_suffixes as $suff) {            foreach ($path_elements as $dir) {                $file = $dir . DIRECTORY_SEPARATOR . $program . $suff;                if (@is_file($file) && @$pear_is_executable($file)) {                    return $file;                }            }        }        return $fallback;    }    /**    * The "find" command    *    * Usage:    *    * System::find($dir);    * System::find("$dir -type d");    * System::find("$dir -type f");    * System::find("$dir -name *.php");    * System::find("$dir -name *.php -name *.htm*");    * System::find("$dir -maxdepth 1");    *    * Params implmented:    * $dir            -> Start the search at this directory    * -type d         -> return only directories    * -type f         -> return only files    * -maxdepth <n>   -> max depth of recursion    * -name <pattern> -> search pattern (bash style). Multiple -name param allowed    *    * @param  mixed Either array or string with the command line    * @return array Array of found files    *    */    function find($args)    {        if (!is_array($args)) {            $args = preg_split('/\s+/', $args, -1, PREG_SPLIT_NO_EMPTY);        }        $dir = array_shift($args);        $patterns = array();        $depth = 0;        $do_files = $do_dirs = true;        for ($i = 0; $i < count($args); $i++) {            switch ($args[$i]) {                case '-type':                    if (in_array($args[$i+1], array('d', 'f'))) {                        if ($args[$i+1] == 'd') {                             $do_files = false;                        } else {                            $do_dirs = false;                        }                    }                    $i++;                    break;                case '-name':                    $patterns[] = "(" . preg_replace(array('/\./', '/\*/'),                                                     array('\.', '.*'),                                                     $args[$i+1])                                      . ")";                    $i++;                    break;                case '-maxdepth':                    $depth = $args[$i+1];                    break;            }        }        $path = System::_dirToStruct($dir, $depth);        if ($do_files && $do_dirs) {            $files = array_merge($path['files'], $path['dirs']);        } elseif ($do_dirs) {            $files = $path['dirs'];        } else {            $files = $path['files'];        }        if (count($patterns)) {            $patterns = implode('|', $patterns);            $ret = array();            for ($i = 0; $i < count($files); $i++) {                if (preg_match("#^$patterns\$#", $files[$i])) {                    $ret[] = $files[$i];                }            }            return $ret;        }        return $files;    }}?>

⌨️ 快捷键说明

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