如何使用 php 删除一些代码并将其转换为变量


How to remove some bits of code and turn it to a variable using php

CreateDynamicObject(2780, 33.62956, 2237.92529, 180.54372, 0.00000, 0.00000, 0.00000);

我想知道如何解析上面的行以获取变量中的值,如下所示:

$id = 2780;
$xPos = 33.62956;
$yPos = 2237.92529;
$zPos = 180.54372;
$rxpos= 0.0000;
$rypos = 0.00000;
$rzpos = 0.00000;

因为我想输入很多这样的行并将其保存到 MySQL 数据库中。

有几种方法可以做到这一点。 一种是仅使用基本的字符串操作。 如果删除CreateDynamicObject();,则留下一个逗号分隔的列表。 在其上使用explode()

$str = 'CreateDynamicObject(2780, 33.62956, 2237.92529, 180.54372, 0.00000, 0.00000, 0.00000);';
$str = str_replace(array('CreateDynamicObject(', ');'), '', $str);
list($id, $xPos, $yPos, $zPos, $rxpos, $rypos, $rzpos) = explode(', ', $str);

如果您有多个,则可以创建一个数组来容纳所有值。

$strs = array(
    'CreateDynamicObject(2780, 33.62956, 2237.92529, 180.54372, 0.00000, 0.00000, 0.00000);',
    'CreateDynamicObject(2780, 33.62956, 2237.92529, 180.54372, 0.00000, 0.00000, 0.00000);'
);
$vals = array();
foreach($strs as $str){
    $str = str_replace(array('CreateDynamicObject(', ');'), '', $str);
    $row = array();
    list(
        $row['id'], $row['xPos'], $row['yPos'], $row['zPos'], $row['rxpos'], $row['rypos'], $row['rzpos']
    ) = explode(', ', $str);
    $vals[] = $row;
}
var_dump($vals);