PHP在命令行中获得多个参数
发布时间:2020-12-13 22:46:41 所属栏目:PHP教程 来源:网络整理
导读:在php命令行上,我只能读取第一个参数.当我添加网站名称时,程序在密码输入之前没有破坏. echo "Site name: ";$handle = fopen ("php://stdin","r");$base_name = trim(fgets($handle));fclose($handle);echo "Password:";$handle = fopen ("php://stdin","r")
在php命令行上,我只能读取第一个参数.当我添加网站名称时,程序在密码输入之前没有破坏.
echo "Site name: "; $handle = fopen ("php://stdin","r"); $base_name = trim(fgets($handle)); fclose($handle); echo "Password:"; $handle = fopen ("php://stdin","r"); $base_password = trim(fgets($handle)); fclose($handle); 我怎样才能从stdin读取这两个变量? 解决方法
在命令时传递的参数将在全局$argv以及超级全局$_SERVER [“argv”]中,其中$argv [0]和$_SERVER [“argv”] [0]是被调用的命令.
解析例如调用的有用函数./myscript.php –user = root –password = foobar function parse_argvs(){ if( $params = $_SERVER["argv"] ){ $file = array_shift( $params ); while( $params ){ $param = array_shift( $params ); switch( strspn( $param,"-" ) ){ case( 1 ): $OPTS[ trim( $param," -" ) ] = array_shift( $params ); break; case( 2 ): list( $key,$value ) = explode( "=",$param ); $OPTS[ trim( $key," -" ) ] = $value; break; default: $OPTS[ $param ] = true; break; } } } return $OPTS ?: array(); } 叫做类似的东西 $parsed = parse_argvs(); echo $parsed['user']; //root echo $parsed['password']; //password 这些是在调用时传递的实际命令行参数.我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |