note 59550 added to function.getopt
| From: | andrew dot waite at databanx dot net | Date: | Fri, 09 Dec 2005 12:59:39 +0000 |
| Subject: | note 59550 added to function.getopt | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-99817@lists.php.net to get a copy of this message | ||
After having problems with the getopt() function I developed this to handle parameters in a smilar
way to 'nix shell script. Hope this is of some us to someone.
#!/usr/bin/php4
<?php
#
# Purpose: Parse parameters passed to script in way comaparable to shell script
# Usage: include_once("/some/path/getArgs.php"); OR
# require_once("/some/path/getArgs.php"); depending on context of parent script
# Post: Generate an associative array $params
#
# Author: A.Waite
# Date: 09/12/05
# Version: V1.0
$i = 1;
$params = array();
for ($i=1; $i < $argc; $i++){
if ( isParam($argv[$i]) ){
if (strlen($argv[$i]) == 1){
//do nothing
// single -
}elseif ( strlen($argv[$i]) == 2){
//seperated (ie -H www.google.com) or no value parameter (ie. -h)
$paramName = $argv[$i];
$paramVal = ( !isParam( $argv[ $i + 1 ] ) ) ? $argv[$i + 1] : null;
}elseif ( strlen($argv[$i]) > 2){
//joined parameters ie -Hwww.google.com
$paramName = substr($argv[$i],0,2);
$paramVal = substr($argv[$i],2);
}
$params[ $paramName ] = $paramVal;
}
}
#determines whether string is a parameter
function isParam($string){
return ($string{0} == "-") ? 1: 0;
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.getopt.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+59550
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+59550&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+59550&report=yes
Search -- http://master.php.net/manage/user-notes.php