我正在尝试使用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.\%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
答案 0 :(得分:3)
从命令行(CLI)使用PHP时,它们不被称为GET变量,它们被称为参数
从名为$argv和$argc的命令行运行的每个脚本都传递了2个参数
要记住第一个argv[0]
出现的一件事就是保存正在运行的脚本的名称。除此之外,参数出现在$argv[]
中,顺序显示在命令行
argc是已经传递给脚本的变量数量的计数
arcv是传递的所有变量的数组
如果您有任何帮助,如果您曾编写任何“C”代码,它们就像“C”等价物一样
其他信息
使用今天的日期调用您的脚本使用类似这样的内容
cd /home/users/public_html/; php -f script.php "$(date +"%s.%N")"
根据需要调整格式。
虽然如果你想在脚本中找到今天的日期,我不知道为什么你不会从PHP脚本本身那里得到它。
答案 1 :(得分:0)
最后我做到了。这是一个语法错误:
此:
cd /home/users/public_html/; php -f script.php `date+\%s.\%N`
需要:
cd /home/users/public_html/; php -f script.php `date +\%s.\%N`