PHP在窗口中的命令提示符中传递值


PHP passing value in command prompt in Window

我想使用cmd来执行我的php文件,我需要通过命令提示符向php传递一个值,就像我们在浏览器中向它传递一个get值一样,下面是我的代码

<?php
$mail = getopt('mail:');
print $mail['mail'];
mail($mail['mail'], 'Mercury test mail', 'If you can read this, everything was fine!');
?>

这是我在命令中输入的命令:

php.exe -e C:'xampp'htdocs'Me'mail.php -mail=me@gmail.com

但命令提示符返回未定义的索引:mail,这是错误日志中显示的消息:

[27-Jul-2012 04:17:07 UTC] PHP Notice:  Undefined index: mail in C:'xampp'htdocs'Me'mail.php on line 3
[27-Jul-2012 04:17:07 UTC] PHP Notice:  Undefined index: mail in C:'xampp'htdocs'Me'mail.php on line 4
[27-Jul-2012 04:17:07 UTC] PHP Warning:  mail(): SMTP server response: 503 No valid recipients specified. in C:'xampp'htdocs'Me'mail.php on line 4

我只是按照这里提到的方法:PHP在linux命令提示符下传递$_GET,但它不起作用,那么我应该如何更改代码才能完成任务?

此代码将返回在命令行中传递的参数数组。

<?php
var_dump($argv);
?>

尝试argv:

<?php 
$email = argv[0];
mail($email, 'Mercury test mail', 'If you can read this, everything was fine!');
?>

用法:

php script.php email@email.com

为了澄清,您是否检查过$argv和$argc是否包含值?创建一个简单的测试PHP脚本,"echo"是$argc的值,并使用print_r()函数来显示$argv的值。

<?
echo "Argc = $argc";
print_r($argv);
?>

然后将此脚本作为运行

php.exe [script file name].php -test -etc...

此外,请尝试使用斜线而不是短划线传递值。例如:

php.exe [script name].php /option1 /option2 ...

如果$argc和$argv包含适当的值,那么您所要做的就是将它们解析为所需的变量。