我的第一个 php cli 程序

第一个 php 命令行下的程序。

功能,最近财政赤字,借了一些同学的钱,我都会自己用记事本记下。

现在写了一个小程序来完成这个工作。

代码没什么好说的。贴出来:

(ps:我感觉cnblogs打开好慢啊,新添加一个随笔,加载页面都要好久,下次如果还这样,我就换个地方开博。不知道 csdn 怎么样呢。)

<?php
if (!isset($argv[1])) {
    $argv[1] = NULL;
}
switch ($argv[1]) {
    case '-a':
        if (!isset($argv[2]) || !isset($argv[3])) {
            _showHelp();
            exit;
        } else if (!is_numeric($argv[3])) {
            print("输入格式错误,请查看帮助!\n");
            _showHelp();
            exit;
        }
        _jieqian($argv[2], $argv[3]);
        break;
    case '-s':
        _showSummary();
        break;
    case '-?':
    case '-h':
    default:
        _showHelp();
}

function _jieqian($name, $money) {
    try {
        $fh = fopen('jieqian.txt', 'a');
    } catch (Exception $e) {
        exit($e->getMessage);
    }
    fwrite($fh, "$name $money ".time()."\n");
    fclose($fh);
    print("操作成功!\n");
}

function _showSummary() {
    try {
        $fh = fopen('jieqian.txt', 'r');
    } catch (Exception $e) {
        exit($e->getMessage);
    }
    $records = array();
    $summary = array();
    while ($line = fgets($fh)) {
        $records[] = explode(' ', $line);
    }
    if (count($records) < 1) {
        print("没有借款记录!");
        exit(0);
    }
    foreach ($records as $record) {
        if (isset($summary[$record[0]])) {
            $summary[$record[0]] += $record[1];
        } else {
            $summary[$record[0]] = $record[1];
        }
    }
    foreach ($summary as $key => $value) {
        print("$key\t\t$value\n");
    }
    fclose($fh);
}

function _showHelp() {
    print "
帮助:
\t-a : 增加借钱记录,格式为:姓名 金额
\t-s : 显示当前欠债情况
\t-h | -? : 显示此帮助文件
    ";
}
posted @ 2012-04-28 21:55  蜗牛爱编程  阅读(245)  评论(0)    收藏  举报