【问题标题】:PHP passing value in command prompt in WindowPHP在窗口中的命令提示符中传递值
【发布时间】:2012-07-25 18:07:55
【问题描述】:

我想使用 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!');
?>

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

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

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

[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 passing $_GET in linux command prompt,但它不起作用,那么我应该如何更改我的代码以完成任务?

【问题讨论】:

    标签: php cmd


    【解决方案1】:

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

    <?php
    var_dump($argv);
    ?>
    

    【讨论】:

      【解决方案2】:

      试试 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,问题可以解决。实际上,如果我只需要传递一个参数,这是一个很好的方法,但有时我可能需要传递更多的值,比如几个,然后如果我可以像使用 GET 方法一样传递值,那么名称为参数,这样做会更方便,这就是我想问的原因
      【解决方案3】:

      为了澄清,您是否检查过 $argv 和 $argc 是否包含值?创建一个简单的测试 PHP 脚本,它'echo's $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 包含适当的值,您所要做的就是将它们解析为所需的变量。

      【讨论】:

      • 这就是我更改代码以查看是否可以传递值的方式 但是,如果需要传入的值很多,我认为有类似-mail=me@gmail.com 之类的东西,所以通过变量名传递变量,就不会那么混乱了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2011-05-14
      • 1970-01-01
      • 2016-10-22
      • 2011-05-11
      相关资源
      最近更新 更多