我有一个工作的python脚本可以ping我的手机,当我从命令行在Raspberry Pi上运行它时,我得到了正确的输出。但是,当我从PHP文件调用此脚本时,输出错误。
这是Python脚本:
#!/usr/bin/python
import subprocess
import time
def checkIfHome(ip):
output = subprocess.Popen(["ping","-c", "1", ip],stdout = subprocess.PIPE,shell=False)
check = output.communicate()[0]
check = output.returncode
return check
ipAddress1 = "192.168.1.51"
residentHome1 = checkIfHome(ipAddress1)
if residentHome1 == 0:
print "Welcome Home!"
else:
print "No one home"
这是php脚本:
error_reporting(E_ALL);
ini_set('display_errors', 1);
$read = exec("python /var/www/html/thuis.py", $full_output);
if ($read=="No one home"){
echo "No one home";
};
if ($read=="Welcome Home!"){
echo "Someone home";
}
我得到的是“没有人回家”,而Python脚本显示“欢迎回家!”如果它直接从命令行运行。我认为这与Python脚本中的某些延迟有关,但我不确定。
有人可以对此有所了解吗?使用php跟踪网络中移动设备存在的另一种更好的方法也可以。