Cookbook /
ParseArgs-Talk
Summary: Talk page for ParseArgs.
This space is for User-contributed commentary and notes. Please include your name and a date along with your comment.
I am using a more generic version of this function, which I think is more flexible/customizable without any additional overhead. Here is the code:
function ParseArgs_YAG($x, $optpat = "(?>(\\w+)\\s*[:=]\\s*)", $valpat = "(\"[^\"]*\"|'[^']*'|[^,;]+|\\S+)", $stripquotepat = "/^\\s*(['\"])?(.*)\\1\\s*[,;]?\\s*$/" ) { $z = array(); preg_match_all("/($optpat|[-+])$valpat/", $x, $terms, PREG_SET_ORDER); foreach($terms as $t) { $v = preg_replace($stripquotepat, '$2', $t[3]); if ($t[2]) { $z['#'][] = $t[2]; $z[$t[2]] = $v; } else { $z['#'][] = $t[1]; $z[$t[1]][] = $v; } $z['#'][] = $v; } return $z; }
One can specify the delimiter (other than white space) and whether or not to strip those in the final value. In the above default values ',' and ';' are used as delimiters besides whitespaces. Subhrajit July 20, 2010, at 01:34 PM