我正在尝试使用PHP生成Python脚本. PHP脚本将变量嵌入python代码中,然后输出结果python脚本.
使用<<< EOT,它应该读取php变量,同时保留其他变量(例如与python相关的变量)
// PHP Var
$date = '12/04/2017';
$id = '2';
$phparray['value1'] = '03:45';
$phparray['value2'] = '08:00';
$phparray['value3'] = '17:00';
$phparray['value4'] = '21:30';
// Embed Variables in the Python script code to be later generated
$PythonContents = <<
I'm, trying to embed "$phpvar" inside python code.
'''
Python script generated on {$date}
'''
# Python Function specific imports
import datetime
################ Python configs ############
myvar = 'fixed'
function_id = {$id}
Python-With-PHP-var-Range = [['{$phparray['value1']}','{$phparray['value2']}'],['{$phparray['value3']}','{$phparray['value4']}']]
Result-IN-Python-range = [['03:45','08:00'],['17:00','21:30']]
Python-and-PHP-var2 = {
'{$generateID}/f/{$data_sensor['device_id']}/test/{$data['heatControlRelay']}/rstate': 'heatingisLocked',
}
ResultINPython = {
'44/f/folder1/test/85111': 'Value',
}
################ End of Python config #############################
################ Python script below #############################
################ End of Python script #############################
EOT;
echo $PythonContents;
解决方法:
主要的破损是在结束EOT之前有额外的间距,但也充满了未定义的变量.
所以这是固定的:
// PHP Var
$generateID = '123';
$data_sensor['device_id'] = 'xyz';
$data['heatControlRelay'] = '12345';
$date = '12/04/2017';
$id = '2';
$phparray['value1'] = '03:45';
$phparray['value2'] = '08:00';
$phparray['value3'] = '17:00';
$phparray['value4'] = '21:30';
// Embed Variables in the Python script code to be later generated
$PythonContents = <<
I'm, trying to embed "\$phpvar" inside python code.
'''
Python script generated on {$date}
'''
# Python Function specific imports
import datetime
################ Python configs ############
myvar = 'fixed'
function_id = {$id}
Python-With-PHP-var-Range = [['{$phparray['value1']}','{$phparray['value2']}'],['{$phparray['value3']}','{$phparray['value4']}']]
Result-IN-Python-range = [['03:45','08:00'],['17:00','21:30']]
Python-and-PHP-var2 = {
'{$generateID}/f/{$data_sensor['device_id']}/test/{$data['heatControlRelay']}/rstate': 'heatingisLocked',
}
ResultINPython = {
'44/f/folder1/test/85111': 'Value',
}
EOT;
echo $PythonContents;
标签:python,php
来源: https://codeday.me/bug/20191111/2018925.html