function str_getcsv($input, $delimiter=',', $enclosure='"', $escape=null) { $temp=fopen("php://memory", "rw"); fwrite($temp, $input); fseek($temp, 0); $r = array(); while (($data = fgetcsv($temp, 4096, $delimiter, $enclosure)) !== false) { $r[] = str_replace($escape.$enclosure,$enclosure,$data); } fclose($temp); return $r; } if (!function_exists("str_getcsv")) { function str_getcsv($input, $delimiter=',', $enclosure='"', $escape='\\') { $bs = '\\'; $enc = $bs . $enclosure; $esc = $bs . $escape; $delim = $bs . $delimiter; $encesc = ($enc == $esc) ? $enc : $enc . $esc; $pattern = "/($enc(?:[^$encesc]|$esc$enc)*$enc|[^$enc$delim]*)$delim/"; preg_match_all($pattern, $input . $delimiter, $matches); $parts = array(); foreach ($matches[1] as $part) { $len = strlen($part); if ($len >= 2 && $part{0} == $enclosure) { $part = substr($part, 1, $len - 2); $part = str_replace($escape . $enclosure, $enclosure, $part); } $parts[] = $part; } return $parts; } } print_r(str_getcsv("insert into pippo values (123, 'aaaa', 'via dell\'apostrofo', 'via con la , virgola', 123)",",","'","\\"));