在EOT中插入带有PHP变量的python代码

时间:2017-06-04 10:50:45

标签: php python

我正在尝试使用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;

1 个答案:

答案 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;