<?php
/**
* @name phpargv
* @package PHP TaMeR
* @copyright (C) 2009-2010 Dennis T Kaplan
* @license GPL v3 {@link http://www.gnu.org/licenses/gpl.html}
* @author Dennis T Kaplan
* @todo
*/
/**
* Class : phpargv
* Date : June 17, 2009
* Purpose : Capture command line arguments in to your php script
*/
class argv {
public function run($argv) {
echo exec('clear'); // You might have to remove this for windows
$this->argv = $argv;
$this->remove_self();
$this->check_help();
$this->args_array();
$this->check_args();
return $this->argv;
}
public function set_arg($arg) {
$this->arg = $arg;
$this->args[$this->arg]['required'] = FALSE;
}
public function set_required($i=FALSE) {
$this->args[$this->arg]['required'] = $i;
}
public function set_value($v) {
$this->args[$this->arg]['value'][] = $v;
}
public function set_text($text) {
if(!isset($this->text)) {
$this->text = $text;
}else{
$this->text .= PHP_EOL.$text ;
}
}
public function args_view() {
$r = "\n$this->text\n\nOptions:\n";
$h = '';
foreach($this->args as $arg=>$v) {
$s= '';
$i='Optional';
if($v['required'] === TRUE) {
$i = "Required";
}
if(isset($v['value'])) {
foreach($v['value'] as $value) {
$s .= "$value | ";
}
$s=trim($s,'| ');
$r.="\t-$arg=[ $s ] <$i>\n";
$h .= " $arg=$s";
}
}
$self = __FILE__;
$r .= "\n\nUsage:\n\t php $self $h\n\n";
return $this->help = $r;
}
private function check_args() {
if(isset($this->argv) && is_array($this->argv)) {
foreach($this->args as $key=>$args){
foreach($args as $k=>$v){
if ($k == 'required' && $v == 1) {
if(!isset($this->argv[$key][$k])){
$this->create_help();
exit;
}
}
}
}
}else {
$this->create_help();
exit;
}
}
private function check_help() {
if (isset($this->argv[1]) && in_array($this->argv[1], array('--help', '-help', '-h', '-?'))) {
$this->create_help();
exit;
}
}
private function create_help() {
$this->args_view();
$h="\n This is a command line PHP script.\n";
$h.= $this->help;
$h.="\n\n";
echo $h;
}
private function remove_self() {
if($this->argv[0] == $_SERVER['PHP_SELF']) {
unset($this->argv[0]);
}
}
function args_array() {
$t = $this->argv;
unset($this->argv);
foreach($t as $v) {
$this->argv[trim(strstr($v,'=',true),'- ')] = trim(strstr($v,'='),'= ');
}
unset($t);
}
}
?>
|