function ExplodeSql($sql) {
if(!is_array($sql)) $sql= explode("\n", $sql);
$out= array();
$p= 0;
$size= count($sql);
$Terms= array('`',"'",'"');
while ($p<$size) {
$line= $sql[$p];
$tline= trim($line);
if((!$tline)or($tline[0]=='-')) {$p++; continue;} // prazan red ili komentar
// ako je stig'o dovde onda počinje neka instrukcija
$instr= '';
$InString= false;
do {
$instr .= $line;
// zavrsava li se red usred nekog stringa (enter usred stringa)
for($x=0;$x<strlen($tline);$x++) {
if(($InString)and($tline[$x]==$Term)) { // izlazimo iz stringa
if(($x+1<strlen($tline))and($tline[$x+1]==$Term)) continue; // dolazi multiquote
$z=0;
while(($x-$z-1>$EntryPos)and($tline[$x-$z-1]==$Term)) $z++;
while(($x>$z)and($tline[$x-$z-1]=='\\')) $z++; // a možda je slešovan
if($z%2==0) {$InString=false; continue;}
}
if((!$InString)and(in_array($tline[$x],$Terms))) // ulazimo u string
{$Term=$tline[$x]; $EntryPos=$x; $InString=true; continue;}
}
$FoundSemicolon= (!$InString) && (substr($tline,-1)==';');
$p++;
if($p>=$size) break;
$line= $sql[$p];
$tline= trim($line);
} while (($InString) || (!$FoundSemicolon));
$out[]= $instr;
}
return $out;
}
$txt= implode('', file('bekap.sql'));
$txt= iconv("ISO-8859-2", "UTF-8", $txt);
$instrukcije= ExplodeSql($txt);
//...