拆分合并Sql语句字符串
有一sql字符串,
$sql = "INSERT INTO tablename (field1,field2,field3,field4,field5,field6,field7,field8) VALUES ( 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ') ";
现已将VALUES部分取出放到以字符串变量,如:$v= " 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ' "
问:怎样将$v拆分为数组,再合并数组后还是原样的呢?(注意单引号和逗号)
------解决方案--------------------
呕,是我没看清你的需求
请确认数据格式
尝试以下分割字符
$v= " 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ' "
$t = preg_split( '/,(?!\w+\ ',?)/i ',$v);
print_r($t);
合并
echo implode( ', ',$t);
------解决方案--------------------
$v= " 'b9 ',NULL, 'h,3,he,p ',1, 'd-0 ',1,11, '4d ' ";
$pattern = "/( '[^ ']* ')|,?([^ ',]+),?/ ";
$res = array();
if (preg_match_all($pattern, $v, $match))
{
foreach($match[1] as $key=> $val)
{
if ($val == ' ')
{
$res[$key] = $match[2][$key];
}
else
$res[$key] = $val;
}
}
echo '
'; <br> print_r($res); <br> ?><div class="clear"> </div>