Hola califa, gracias por coparte! yo hice algo parecido, nada mas que si hay una sola comilla, la toma como parte de un argumento en el caso de que halla espacios como separador.
el code por si alguien mas quiere inventar algo raro:
Código PHP:
function command ($command)
{
$cmd = ereg (' ', $command) ? substr ($command, 0, strpos ($command, ' ')) : $command;
$isCommand = ( !empty ($cmd) && !ereg ("\n", $cmd) && !ereg ('[^a-z_]', $cmd) ) ? true : false;
return $isCommand ? array ( $cmd, getValues ( ( ereg (' ', $command) ? substr ( $command, strpos ($command, ' ') ) : null ) ) ) : null;
}
function getValues ($cmd)
{
if ($cmd == null)
{
return null;
}
$result = array ();
$position = 0;
while ( ( $position = strpos ( $cmd, '"', $position ) ) !== false )
{
$position++;
if ( ( $scloserP = strpos ( $cmd, '"', $position ) ) !== false )
{
$result[] = trim ( substr ( $cmd, $position, $scloserP - $position ) );
$position = $scloserP + 1;
}
}
if ($result != null)
{
return $result;
}
else
{
$v = explode (' ', $cmd);
$i = 1;
while ( isset ($v[$i]) )
{
$result[] = trim ($v[$i]);
$i++;
}
return ($result != null) ? $result : null;
}
}
saludos.