我有字符串
$argsInString = '"%s hello", \'%s world\', $foo->bar("anything", array(\'foo\' => 5 , \'bar\' => $a)),5, foo($s) ,$foo';
我想像这样转换为数组:
$argsInArray = array('"%s hello"', '\'%s world\'', '$foo->bar("anything", array(\'foo\' => 5 , \'bar\' => $a))', '5', 'foo($s)', '$foo');
我尝试这样的事情:
eval('$argsInArray = array(' . $argsInString . ');');
但这执行变量。
你能帮我如何从 $argsInString 创建 $argsInArray 吗?
编辑:如果它成功地编写了一个正则表达式,该正则表达式将在字符串中使用单引号 (') 覆盖单个参数,则 eval 如上所述工作。
或者你可以写正则表达式 preg_match_all('...', $argsInString, $argsInArray); 这是最好的。