Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP-CLI提示输入,并将输入作为变量提供?_Php_Datetime_Input_Command Line Interface - Fatal编程技术网

如何使用PHP-CLI提示输入,并将输入作为变量提供?

如何使用PHP-CLI提示输入,并将输入作为变量提供?,php,datetime,input,command-line-interface,Php,Datetime,Input,Command Line Interface,我正在寻找一个小型PHP-CLI工具,它将告诉我输入的日期是否是周末。我目前有以下脚本,实现了这一目标: <?php function isWeekend($date) { return (date('N', strtotime($date)) >= 6); } var_dump(isWeekend('2014-10-29')); ?> 它目前运行良好(输出true或false),但每次我想测试日期时都必须更新源代码。如果我可以提示输入日期(用户输入),然后使用该输入来

我正在寻找一个小型PHP-CLI工具,它将告诉我输入的日期是否是周末。我目前有以下脚本,实现了这一目标:

<?php
function isWeekend($date) {
return (date('N', strtotime($date)) >= 6);
}
var_dump(isWeekend('2014-10-29')); 
?>

它目前运行良好(输出true或false),但每次我想测试日期时都必须更新源代码。如果我可以提示输入日期(用户输入),然后使用该输入来计算日期(最好不使用HTML元素),这会更容易,因为我目前正在通过CLI运行脚本


还有其他人实现了我想要做的事情吗?我不需要验证,因为这是一个只有我才会使用的工具,每次使用它时,我都会确保使用正确的日期结构。

当从命令propmpt运行时

php scriptname.php 2014-10-29 secondarg
用户输入将包含在

$argv[1]

$argv[2] //secondarg etc
当然,

strtotime($argv[1]);
失败时将返回false

您可以尝试:

<?php
fwrite(STDOUT, "Enter the date\n");
$date = fgets(STDIN);      
$isWeekend = (date('N', strtotime($date)) >= 6);
fwrite(STDOUT, "Response: $isWeekend");  
exit(0); 
?>

为什么每次都需要更新源代码?在我看来,这个函数是可重用的。你发布的问题问错了。您的问题是“如何使用PHP-CLI提示输入并将输入作为变量提供?”感谢您的输入。我发现很难想出该问什么,但你的建议很完美。谢谢!这看起来很好,很简单,这绝对是我要找的。但是,除了输入的日期之外,我似乎没有得到任何输入。只是确认一下,日期格式是:YYYY-MM-DD?当使用您提供的代码和正确的日期格式时,我在CLI中得到的唯一响应是:response:没有提供其他输出。我将得到的结果添加到答案中。非常感谢!看来控制台字体I隐藏了“1”,这是回声。我在fwrite语句中添加了一个换行符,现在响应出现在它自己的行上。您也可以尝试一下(像Andrew建议的那样):
并运行:C:\xampp\php>php test.php 2014-11-30
register\u argc\u argv
默认情况下是
关闭的,因此我建议使用
$\u SERVER['argv']
C:\xampp\php>php test.php
Enter the date
2014-11-30
Response: 1
C:\xampp\php>php test.php
Enter the date
2014-12-01
Response:
C:\xampp\php>