0

argv 変数と getopt() を使用しようとしてもうまくいかないようです。すべての - または -- オプションを使用する以外の回避策を知っている人:

<?php
$arr[] = "test:";
$options = getopt(NULL, $arr);
echo $options["test"];
?>

上記の簡単な例を実行すると、次のようになります。

php test.php --test="Hello World"

こんにちは世界

php test.php argv --test="Hello World"

前に - または -- を付けずに値を配置したため、出力はありません。

4

2 に答える 2

1
function get_opt() {
    $options = array();
    foreach( $_SERVER[ "argv" ] as $key => $arg ) {
        if ( preg_match( '@\-\-(.+)=(.+)@', $arg, $matches ) ) {
            $key   = $matches[ 1 ];
            $value = $matches[ 2 ];
            $options[ $key ] = $value;
        } else if ( preg_match( "@\-(.)(.)@", $arg, $matches ) ) {
            $key   = $matches[ 1 ];
            $value = $matches[ 2 ];
            $options[ $key ] = $value;
        }
    }
    return $options;
}
于 2014-02-13T19:19:57.923 に答える