我已经在使用exec PHP函数时遇到了问题,我的想法是使用PHP执行python文件以编写带有大文本的文件,但是当PHP执行python文件时,它仅传递了一行并且我已经在使用escapeshellarg php功能,但没有用。我的PHP代码
$user = \logined::name();
$data = escapeshellarg($_POST['data']);
exec( GOBA_PY_CMD."writefile " . $user . " ". $path . " ". $data ." ", $output, $return_var);
if ($return_var != 0) {
print json_encode(['status'=>false,'message'=>'Error while opening file']) ; // todo: handle this more styled
exit;
} else {
echo $output[0];
}
和我的Python文件
def writeSend(self):
if os.path.isfile(self.path):
print(self.data)
exit()
os.system("sudo -u "+self.user+" printf "+ self.data +" > "+ self.path)
data = {'status':True,'message':'success'}
jsondata = json.dumps(data)
print(jsondata)
else:
data = {'status':False,'message':'Failed','data':None}
jsondata = json.dumps(data)
print(jsondata)
那我该如何解决这个问题?
答案 0 :(得分:0)
使用json_encode函数解决了问题。