我正在尝试使用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 = <<<EOT
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;
答案 0 :(得分:3)
主要破损是在结尾EOT
之前的额外间距,但它也充满了未定义的变量。
所以它修复了:
<?php
// 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 = <<<EOT
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;