将当前日期添加到PHP命令行参数
我正在尝试使用PHP命令行(从cron选项卡)。我知道如何添加如下参数:将当前日期添加到PHP命令行参数,php,Php,我正在尝试使用PHP命令行(从cron选项卡)。我知道如何添加如下参数: cd /home/users/public_html/; php -f script.php some_value 我想(或需要)以友好方式添加当前日期: cd /home/users/public_html/; php -f script.php current_date 通过wget,我做到了这一点: wget "https://mysitecom/script.php?currentdate=`date +\%s
cd /home/users/public_html/; php -f script.php some_value
我想(或需要)以友好方式添加当前日期:
cd /home/users/public_html/; php -f script.php current_date
通过wget,我做到了这一点:
wget "https://mysitecom/script.php?currentdate=`date +\%s.\%N`"
但是我找不到任何方法来用php命令行做类似的事情
我试过:
cd /home/users/public_html/; php -f script.php `date+\%s.\%N`
我得到错误“找不到命令”
我也尝试过一个答案中提出的解决方案:
cd /home/users/public_html/; php -f script.php date+\%s.\%N
我得到了文本字符串“date+\%s.\%N”
另一个提议的解决方案是:
cd /home/users/public_html/; php -f script.php "$(date +"%s.%N")"
我在cron发送的电子邮件中收到以下错误:
/usr/local/cpanel/bin/jailshell: -c: line 0: unexpected EOF while looking for matching `"'
/usr/local/cpanel/bin/jailshell: -c: line 1: syntax error: unexpected end of file
当从命令行(CLI)使用PHP时,它们不被称为GET变量,而被称为参数 从名为and的命令行向每个脚本运行传递了两个参数 要记住的一点是,第一个
argv[0]
occurrence包含正在运行的脚本的名称。除此之外,参数在$argv[]
中的显示顺序与在命令行中的显示顺序相同
argc是已传递给脚本的变量数
arcv是传递的所有变量的数组
如果有帮助的话,它们就像你曾经写过的“C”代码中的“C”等价物一样
其他信息
要使用今天的日期调用脚本,请使用以下内容
cd /home/users/public_html/; php -f script.php "$(date +"%s.%N")"
根据需要调整格式
虽然如果您想在脚本中使用今天的日期,我不确定为什么您不能从PHP脚本本身中获得该日期。最后,我已经让它工作了。这是一个语法错误: 这: 需要:
cd /home/users/public_html/; php -f script.php `date +\%s.\%N`
显然,GET变量用于GET请求。您可以添加一个如何将当前日期添加到命令行参数的示例吗?根据日期格式
php-f myscript.php 20150818
其中20150818
是参数1(参数0是脚本本身)@JayBlanchard这不是一个选项,我需要它始终是当前日期,因此,它必须以友好的方式添加。然后使用Linuxdate
作为参数。我能给出的唯一解释是,您执行的是php cgi.exe
,而不是通过$\u GET
传递的php.exe
可能有效,但这不是最佳实践。看起来您可能正在使用PHP CGI API。我可以理解,但在这种情况下,说GET变量不可通过命令行使用是不正确的,这让我感到困惑。更糟糕的是,@riggsfully的回答是“GET变量在命令行中被称为参数”。这也是不正确的,我一直在阅读DocueMatation,它们在不同的上下文中没有被不同的调用,它们是完全不同的东西。无论如何,我仍然希望友好地将当前日期添加到命令行参数或获取变量。@RiggsFolly是正确的-获取变量不适用于CLI,除非您使用的是PHP CGI。如果使用的是true CLI,则只能传递参数。确定。现在完全明白了。无论如何,我不能接受你们的答案,它解释了我理解错误的地方,但并不是我如何从命令行将当前日期传递给脚本。我还对问题进行了编辑,以消除GET和arguments之间的所有混淆。好了,所有这些都很好地摆在了一个盘子上。PS回答问题后,不允许改变问题的焦点
cd /home/users/public_html/; php -f script.php `date +\%s.\%N`