接收用户输入以使用键盘上的用户输入值运行php脚本

时间:2011-04-25 01:05:45

标签: php user-input

我有一个php脚本,我从linux中的命令行运行(非交互式),它在mysql数据库中进行查找,并根据字段“SentOrNotSent”的值发送或不发送电子邮件。它工作正常,这个PHP脚本。

现在我想修改脚本,以便在第一次运行时,它要求输入来自键盘的“ID”号,然后它进入MySql数据库并删除带有该ID的记录。我知道怎么做删除,我迷失了如何让这个脚本要求输入,然后使用该值作为mysql update语句的一部分来删除记录。

此脚本仅从命令行运行,并且位于只有管理员才能访问的目录中。

谢谢你的帮助。

3 个答案:

答案 0 :(得分:6)

您可以通过$ argc(cli args计数)和$ argv(实际参数值数组)检查命令行参数。或者您可以通过读取标准输入(STDIN)来提示输入并获取输入。

给出命令行:

$ ./myscript 1234

myscript.php:
<?php
if (isset($argv[1])) {
   $myid = (int)$argv[1]; // use the command line argument for ID
} else {
   print("Enter an ID number: ");
   $myid = (int)fgets(STDIN); // prompt the user for an ID
}
... proceed with $myid = 1234 or whatever you entered.

答案 1 :(得分:3)

一行代码(第2行):

<?php
$id = trim(shell_exec("read -p 'Enter your ID: ' id\necho \$id"));
echo "The ID you entered was $id (this is PHP speaking… do your database stuff next…)\n";
exit;

http://oneqonea.blogspot.com/2012/04/how-can-i-capture-user-input-from-cmd.html

查看此答案的来源

答案 2 :(得分:0)

“php script.php 1234”只需添加id,它真的需要互动吗? 1234将在$ argv数组中,然后可以在脚本中使用

http://php.net/manual/en/reserved.variables.argv.php