0) && (substr($t,0,1)!="#") ) return $t; else return ""; } // extrahiert auf einfache Art den Tabellennamen aus dem "Create"-Befehl function get_tablename($t) { global $table_ready; $t=trim(str_replace("CREATE TABLE","",$t)); $w=explode(" ",$t); $table_ready++; return $w[0]; } // Liest zeilenweise aus dem Dump und setzt den MySQl-Befehl // bis zum Vorkommen des Codes [chr(1)] zusammen function get_sqlbefehl() { global $f,$gz,$end,$actual_table,$next_sqlcommand; $ret=false; $befehl=""; $befehl_gefunden=false; WHILE ( ($befehl_gefunden==false) && (!($end)) ) { $zeile= ($gz) ? gzgets($f,40960) : fgets($f,40960); if ($zeile) { // Prima, wir haben Text in unserer Zeile. // Dann wollen wir den Befehl mal zusammensetzen. :-) // Zuerst mal schauen, ob es sich nicht um eine Kommentarzeile handelt // Aber nur am Anfang eines Befehls - sonst besteht die Gefahr, dass // Zeilen in Datensaetzen geloescht werden. if ($befehl=="") $zeile=is_sqlvalue($zeile); // Dann schauen wir mal nach dem Ende-Code... $pos=strpos($zeile,$next_sqlcommand); if (!$pos===false) { // Ende des Befehls gefunden - Rueckgabe ohne Semikolon und Ende-Code $befehl.=substr($zeile,0,($pos-1)); $befehl_gefunden=true; $ret=$befehl; } // Befehl ist noch nicht fertig: Zeile zum Befehl hinzufuegen else $befehl.=$zeile; // Pruefen, ob die naechste Tabelle angelegt wird (nur fuer Infoanzeige) if (strtolower(substr($zeile,0,13))=="create table ") $actual_table=get_tablename($zeile); } else { // Ups, kein Rueckgabewert in der Zeile? // Ja sind wir denn schon fertig? - Das ueberpruefen wir mal mit eof()... if ( ($gz) && (gzeof($f)) ) $end=true; if ( (!$gz) && (feof($f)) ) $end=true; $ret="end of file"; } } return $ret; } ?>