function parseCommandString( $str ) {
$chunks = explode( '"', $str );
$cmd = array();
// Split the command into space-separated parameters (preserving quoted portions)
$c = count($chunks);
for( $i=0; $i<$c; $i++ ) {
if( $i % 2 == 0 ) {
if( $chunks[$i] == '' ) {
continue;
}
$params = explode( ' ', $chunks[$i] );
$pc = count($params);
for( $j=0; $j<$pc; $j++ ) {
if( $params[$j] != '' ) {
$cmd[] = $params[$j];
}
}
} else {
if( $chunks[$i] != '' ) {
$cmd[] = $chunks[$i];
}
}
}
return $cmd;
}
簡単そうに見えますが、これが私がやりたいことの最良の実装であるかどうかについての洞察が不足しています。つまり、文字列を最初に引用符のセクションで、次にスペース(引用符で囲まれていないセクション内)で部分文字列の配列に分割する必要があります。これは、私のサイトの実際のコマンドプロンプトのようなものです。
洞察に感謝します。