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);