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

📄 cli.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
                    $result[$key] = $default;                } else {                    $result[$key] = trim($line);                }            }            if (version_compare(phpversion(), '5.0.0', '<')) {                fclose($fp);            }        }        return $result;    }    // }}}    // {{{ userConfirm(prompt, [default])    function userConfirm($prompt, $default = 'yes')    {        trigger_error("PEAR_Frontend_CLI::userConfirm not yet converted", E_USER_ERROR);        static $positives = array('y', 'yes', 'on', '1');        static $negatives = array('n', 'no', 'off', '0');        print "$this->lp$prompt [$default] : ";        $fp = fopen("php://stdin", "r");        $line = fgets($fp, 2048);        fclose($fp);        $answer = strtolower(trim($line));        if (empty($answer)) {            $answer = $default;        }        if (in_array($answer, $positives)) {            return true;        }        if (in_array($answer, $negatives)) {            return false;        }        if (in_array($default, $positives)) {            return true;        }        return false;    }    // }}}    // {{{ startTable([params])    function startTable($params = array())    {        trigger_error("PEAR_Frontend_CLI::startTable deprecated", E_USER_ERROR);    }    function _startTable($params = array())    {        $params['table_data'] = array();        $params['widest'] = array();  // indexed by column        $params['highest'] = array(); // indexed by row        $params['ncols'] = 0;        $this->params = $params;    }    // }}}    // {{{ tableRow(columns, [rowparams], [colparams])    function tableRow($columns, $rowparams = array(), $colparams = array())    {        trigger_error("PEAR_Frontend_CLI::tableRow deprecated", E_USER_ERROR);    }    function _tableRow($columns, $rowparams = array(), $colparams = array())    {        $highest = 1;        for ($i = 0; $i < sizeof($columns); $i++) {            $col = &$columns[$i];            if (isset($colparams[$i]) && !empty($colparams[$i]['wrap'])) {                $col = wordwrap($col, $colparams[$i]['wrap'], "\n", 0);            }            if (strpos($col, "\n") !== false) {                $multiline = explode("\n", $col);                $w = 0;                foreach ($multiline as $n => $line) {                    if (strlen($line) > $w) {                        $w = strlen($line);                    }                }                $lines = sizeof($multiline);            } else {                $w = strlen($col);            }            if (isset($this->params['widest'][$i])) {                if ($w > $this->params['widest'][$i]) {                    $this->params['widest'][$i] = $w;                }            } else {                $this->params['widest'][$i] = $w;            }            $tmp = count_chars($columns[$i], 1);            // handle unix, mac and windows formats            $lines = (isset($tmp[10]) ? $tmp[10] : (isset($tmp[13]) ? $tmp[13] : 0)) + 1;            if ($lines > $highest) {                $highest = $lines;            }        }        if (sizeof($columns) > $this->params['ncols']) {            $this->params['ncols'] = sizeof($columns);        }        $new_row = array(            'data' => $columns,            'height' => $highest,            'rowparams' => $rowparams,            'colparams' => $colparams,            );        $this->params['table_data'][] = $new_row;    }    // }}}    // {{{ endTable()    function endTable()    {        trigger_error("PEAR_Frontend_CLI::endTable deprecated", E_USER_ERROR);    }    function _endTable()    {        extract($this->params);        if (!empty($caption)) {            $this->_displayHeading($caption);        }        if (count($table_data) == 0) {            return;        }        if (!isset($width)) {            $width = $widest;        } else {            for ($i = 0; $i < $ncols; $i++) {                if (!isset($width[$i])) {                    $width[$i] = $widest[$i];                }            }        }        $border = false;        if (empty($border)) {            $cellstart = '';            $cellend = ' ';            $rowend = '';            $padrowend = false;            $borderline = '';        } else {            $cellstart = '| ';            $cellend = ' ';            $rowend = '|';            $padrowend = true;            $borderline = '+';            foreach ($width as $w) {                $borderline .= str_repeat('-', $w + strlen($cellstart) + strlen($cellend) - 1);                $borderline .= '+';            }        }        if ($borderline) {            $this->_displayLine($borderline);        }        for ($i = 0; $i < sizeof($table_data); $i++) {            extract($table_data[$i]);            if (!is_array($rowparams)) {                $rowparams = array();            }            if (!is_array($colparams)) {                $colparams = array();            }            $rowlines = array();            if ($height > 1) {                for ($c = 0; $c < sizeof($data); $c++) {                    $rowlines[$c] = preg_split('/(\r?\n|\r)/', $data[$c]);                    if (sizeof($rowlines[$c]) < $height) {                        $rowlines[$c] = array_pad($rowlines[$c], $height, '');                    }                }            } else {                for ($c = 0; $c < sizeof($data); $c++) {                    $rowlines[$c] = array($data[$c]);                }            }            for ($r = 0; $r < $height; $r++) {                $rowtext = '';                for ($c = 0; $c < sizeof($data); $c++) {                    if (isset($colparams[$c])) {                        $attribs = array_merge($rowparams, $colparams);                    } else {                        $attribs = $rowparams;                    }                    $w = isset($width[$c]) ? $width[$c] : 0;                    //$cell = $data[$c];                    $cell = $rowlines[$c][$r];                    $l = strlen($cell);                    if ($l > $w) {                        $cell = substr($cell, 0, $w);                    }                    if (isset($attribs['bold'])) {                        $cell = $this->bold($cell);                    }                    if ($l < $w) {                        // not using str_pad here because we may                        // add bold escape characters to $cell                        $cell .= str_repeat(' ', $w - $l);                    }                    $rowtext .= $cellstart . $cell . $cellend;                }                if (!$border) {                    $rowtext = rtrim($rowtext);                }                $rowtext .= $rowend;                $this->_displayLine($rowtext);            }        }        if ($borderline) {            $this->_displayLine($borderline);        }    }    // }}}    // {{{ outputData()    function outputData($data, $command = '_default')    {        switch ($command) {            case 'channel-info':                foreach ($data as $type => $section) {                    if ($type == 'main') {                        $section['data'] = array_values($section['data']);                    }                    $this->outputData($section);                }                break;            case 'install':            case 'upgrade':            case 'upgrade-all':                if (isset($data['release_warnings'])) {                    $this->_displayLine('');                    $this->_startTable(array(                        'border' => false,                        'caption' => 'Release Warnings'                        ));                    $this->_tableRow(array($data['release_warnings']), null, array(1 => array('wrap' => 55)));                    $this->_endTable();                    $this->_displayLine('');                }                $this->_displayLine($data['data']);                break;            case 'search':                $this->_startTable($data);                if (isset($data['headline']) && is_array($data['headline'])) {                    $this->_tableRow($data['headline'], array('bold' => true), array(1 => array('wrap' => 55)));                }                foreach($data['data'] as $category) {                    foreach($category as $pkg) {                        $this->_tableRow($pkg, null, array(1 => array('wrap' => 55)));                    }                };                $this->_endTable();                break;            case 'list-all':                $this->_startTable($data);                if (isset($data['headline']) && is_array($data['headline'])) {                    $this->_tableRow($data['headline'], array('bold' => true), array(1 => array('wrap' => 55)));                }                foreach($data['data'] as $category) {                    foreach($category as $pkg) {                        unset($pkg[4]);                        unset($pkg[5]);                        $this->_tableRow($pkg, null, array(1 => array('wrap' => 55)));                    }                };                $this->_endTable();                break;            case 'config-show':                $data['border'] = false;                $opts = array(0 => array('wrap' => 30),                              1 => array('wrap' => 20),                              2 => array('wrap' => 35));                $this->_startTable($data);                if (isset($data['headline']) && is_array($data['headline'])) {                    $this->_tableRow($data['headline'],                                     array('bold' => true),                                     $opts);                }                foreach($data['data'] as $group) {                    foreach($group as $value) {                        if ($value[2] == '') {                            $value[2] = "<not set>";                        }                        $this->_tableRow($value, null, $opts);                    }                }                $this->_endTable();                break;            case 'remote-info':                $data = array(                    'caption' => 'Package details:',                    'border' => false,                    'data' => array(                        array("Latest",    $data['stable']),                        array("Installed", $data['installed']),                        array("Package",   $data['name']),                        array("License",   $data['license']),                        array("Category",  $data['category']),                        array("Summary",   $data['summary']),                        array("Description", $data['description']),                        ),                    );            default: {                if (is_array($data)) {                    $this->_startTable($data);                    $count = count($data['data'][0]);                    if ($count == 2) {                        $opts = array(0 => array('wrap' => 25),                                      1 => array('wrap' => 48)                        );                    } elseif ($count == 3) {                        $opts = array(0 => array('wrap' => 30),                                      1 => array('wrap' => 20),                                      2 => array('wrap' => 35)                        );                    } else {                        $opts = null;                    }                    if (isset($data['headline']) && is_array($data['headline'])) {                        $this->_tableRow($data['headline'],                                         array('bold' => true),                                         $opts);                    }                    foreach($data['data'] as $row) {                        $this->_tableRow($row, null, $opts);                    }                    $this->_endTable();                } else {                    $this->_displayLine($data);                }            }        }    }    // }}}    // {{{ log(text)    function log($text, $append_crlf = true)    {        if ($append_crlf) {            return $this->_displayLine($text);        }        return $this->_display($text);    }    // }}}    // {{{ bold($text)    function bold($text)    {        if (empty($this->term['bold'])) {            return strtoupper($text);        }        return $this->term['bold'] . $text . $this->term['normal'];    }    // }}}}?>

⌨️ 快捷键说明

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