function parse_sql_file($filename) { // do not escape the file while reading it set_magic_quotes_runtime(0); $fcz = new FC_SQL(); $fcz->connect(); if (file_exists($filename)) { $fp = fopen($filename, "r"); while ($buffer = fgets($fp, 4096)) { $dres = null; $res = null; if (strchr($buffer, '#') && eregi("\"#[0-9a-z]{6}\"", $buffer)) { // html color code, typically in inserted html $sql .= $buffer; } else { if (ereg("(^[ \t]*[#;/-]+)", $buffer, $res) || ereg("^\n", $buffer)) { // comment line, skip it // oracle has lines with a single leading /, skip them continue; } elseif (ereg("([^#]+);[\t ]*[-]{0,2}.*", $buffer, $res)) { // ; terminated sql line // chop off double dash comments $sql .= $res[1]; // echo "second: $sql<br>br>\n"; if (ereg(" end[ \t]*\$", $res[1])) { // wierd hack for oracle triggers/procedures $sql .= ';'; } $fcz->query($sql); unset($sql); } elseif (ereg("(^[^#;]+)[\t ]*[-]{0,2}[^;]*", $buffer, $res)) { // unterminated sql line // chop off double dash comments $sql .= $res[1]; // echo "first: $sql<br><br>\n"; } else { // echo "third: $buffer<br><br>\n"; } } } fclose($fp); } }