Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/**
3
 * Example for Console_Getargs class
4
 *
5
 * $Id: example.php 170645 2004-10-14 20:44:41Z scottmattocks $
6
 */
7
 
8
require_once 'Console/Getargs.php';
9
 
10
$config = array(
11
            // Option takes 2 values
12
            'files|images' => array('short' => 'f|i',
13
				    'min' => 2,
14
				    'max' => 2,
15
				    'desc' => 'Set the source and destination image files.'),
16
            // Option takes 1 value
17
            'width' => array('short' => 'w',
18
			     'min' => 1,
19
			     'max' => 1,
20
			     'desc' => 'Set the new width of the image.'),
21
            // Option is a switch
22
            'debug' => array('short' => 'd',
23
			     'max' => 0,
24
			     'desc' => 'Switch to debug mode.'),
25
            // Option takes from 1 to 3 values, using the default value(s) if the arg is not present
26
            'formats' => array('min' => 1,
27
			       'max' => 3,
28
			       'desc' => 'Set the image destination format.',
29
			       'default' => array('jpegbig', 'jpegsmall')),
30
            // Option takes from 1 to an unlimited number of values
31
            'filters' => array('short' => 'fi',
32
			       'min' => 1,
33
			       'max' => -1,
34
			       'desc' => 'Set the filters to be applied to the image upon conversion. The filters will be used in the order they are set.'),
35
            // Option accept 1 value or nothing. If nothing, then the default value is used
36
            'verbose' => array('short' => 'v',
37
			       'min' => 0,
38
			       'max' => 1,
39
			       'desc' => 'Set the verbose level.',
40
			       'default' => 3),
41
            // Parameters. Anything leftover at the end of the command line is added.
42
            CONSOLE_GETARGS_PARAMS => array('min' => 1,
43
					    'max' => 2,
44
					    'desc' =>
45
					    'Set the application parameters.',
46
					    'default' => 'DEFAULT')
47
            );
48
 
49
$args =& Console_Getargs::factory($config);
50
 
51
// Use the following two lines to test passing an array
52
// other than $_SERVER['argv']
53
//$test =  array('-dvw', 500, 'foo1', 'foo2');
54
//$args =& Console_Getargs::factory($config, $test);
55
 
56
if (PEAR::isError($args)) {
57
    $header = "Console_Getargs Example\n".
58
              'Usage: '.basename($_SERVER['SCRIPT_NAME'])." [options]\n\n";
59
    if ($args->getCode() === CONSOLE_GETARGS_ERROR_USER) {
60
        echo Console_Getargs::getHelp($config, $header, $args->getMessage())."\n";
61
    } else if ($args->getCode() === CONSOLE_GETARGS_HELP) {
62
        echo Console_Getargs::getHelp($config, $header)."\n";
63
        // To see the automatic header uncomment this line
64
        //echo Console_Getargs::getHelp($config)."\n";
65
    }
66
    exit;
67
}
68
 
69
echo 'Verbose: '.$args->getValue('verbose')."\n";
70
echo 'Formats: '.(is_array($args->getValue('formats')) ? implode(', ', $args->getValue('formats'))."\n" : $args->getValue('formats')."\n");
71
echo 'Files: '.($args->isDefined('files') ? implode(', ', $args->getValue('files'))."\n" : "undefined\n");
72
if ($args->isDefined('fi')) {
73
    echo 'Filters: '.(is_array($args->getValue('fi')) ? implode(', ', $args->getValue('fi'))."\n" : $args->getValue('fi')."\n");
74
} else {
75
    echo "Filters: undefined\n";
76
}
77
echo 'Width: '.$args->getValue('w')."\n";
78
echo 'Debug: '.($args->isDefined('d') ? "YES\n" : "NO\n");
79
echo 'Parameters: '.($args->isDefined('parameters') ? is_array($args->getValue('parameters')) ? implode(', ', $args->getValue('parameters')) : $args->getValue('parameters') : "undefined") . "\n";
80
 
81
// Test with:
82
// ----------
83
// Get the help message
84
// php -q example.php -h
85
//
86
// Pass two files
87
// php -q example.php -v -f src.tiff dest.tiff
88
//
89
// Set verbose level 5, pass two files, and debug
90
// php -q example.php -v5 -f src.tiff dest.tiff -d
91
//
92
// Set verbose level 1, pass two files, debug, and set width to 100
93
// php -q example.php -v 1 -f src.tiff dest.tiff -d --width=100
94
//
95
// Set verbose (defaults to 3), pass two files, and pass two filters
96
// php -q example.php -v -f src.tiff dest.tiff -fi sharp blur
97
//
98
// Set three formats
99
// php -q example.php --format gif jpeg png
100
//
101
// Debug, set verbose to default level and width to 100
102
// php -q example.php -dvw 100
103
//
104
// Pass two application parameters
105
// php -q example.php foo1 foo2
106
//
107
// Debug, set verbose level 5, pass two files, and pass two application parameters
108
// php -q examples/example.php -dv5 -f src.tiff dest.tiff foo1 foo2
109
 
110
?>