将变量从php传递到python脚本并运行os.system()
我需要用php脚本设置我的树莓pi的日期和时间。 经过一些研究,我使用php脚本调用python脚本。 My datetime.php:将变量从php传递到python脚本并运行os.system(),php,python,variables,os.system,Php,Python,Variables,Os.system,我需要用php脚本设置我的树莓pi的日期和时间。 经过一些研究,我使用php脚本调用python脚本。 My datetime.php: $date = '2015-09-05'; $output = shell_exec('/usr/bin/python/home/pi/datalogger/modules/sys/write_date.py ' . $date); echo $output; os.system("sudo date -s "+"'"+date_object+"'")
$date = '2015-09-05';
$output = shell_exec('/usr/bin/python/home/pi/datalogger/modules/sys/write_date.py ' . $date);
echo $output;
os.system("sudo date -s "+"'"+date_object+"'")
写_date.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from datetime import datetime
def main():
date=sys.argv[1]
time='22:04'
print(date) #for debug
string_date=date+' '+time+':00'
date_object2=datetime.strptime(string_date, "%Y-%m-%d %H:%M:%S")
date_object=date_object2.strftime("%a %b %d %H:%M:%S"+" UTC "+"%Y")
os.system("sudo date -s "+"'"+date_object+"'")
if __name__ == '__main__':
main()
当我刷新我的datetime.php时,我得到了日期打印,所以脚本可以工作。。。问题是我的日期没有更新。但是,如果我在命令行中运行write_date.py,我可以更新raspberry的日期时间。在基于Linux的系统(例如raspberry Pi)上通过PHP设置日期的示例:
您正在通过Python执行shell命令,为什么不在PHP中格式化日期对象并通过PHP运行相同的命令?我想我不确定为什么要从PHP到Python来执行简单的命令。PHP可以在Pi上为你做这件事。在string\u date=date+''之后的某个地方调试你的代码代码>。这是一个打字错误,或者你的php脚本中有python代码?Twisty,你能给我一个例子吗?marmeladze,我打印date_对象并运行…Twisty,我已经尝试了,但我的树莓的日期没有改变。我需要“激活一些sudo权限”吗?我想是的。只是确认一下,PHP页面正在RPi上运行,对吗?如果是这样,apache用户或www数据可能需要特定位置的权限才能运行date。这将有助于权限:
<?php
date_default_timezone_set('UTC');
$dt = date("D M j G:i:s T Y", strtotime("2015-09-05 22:04"));
$output = shell_exec('sudo date -s "$dt"');
?>