function irc_scan_log_auslesen($pfad, $datei, $datum) { $scan_typ1 = array("sektorscan", "einheitenscan", "gesch.*zscan", "mili.*scan"); $scan_typ2 = array("sek", "unit", "g", "mili"); $scan_timeout = 6; // Nach wie vielen Zeilen ein unvolständiger Scan übersprungen wird $chan = preg_replace('/(_' . $datum . '\\.log)/', '', $datei); $query[0] = 'SELECT tag, zeile FROM gn4irc_scans WHERE chan="' . $chan . '"'; $eintrag = mysql_multi_query($query, 1, 0); $last = $eintrag['zeile']; if ($last == "") { $last = 0; } else { if ($eintrag['tag'] != date("d")) { $last = 0; } } settype($lsat, "int"); $last++; $z0 = 0; $z1 = 0; $handle = fopen($pfad . $datei, "r"); while (!feof($handle)) { $z0++; $buffer = trim(fgets($handle, 400)); if ($z0 >= $last) { $muster[0] = '/' . chr(3) . '[0-9]{2}\\,[0-9]{2}/'; $muster[1] = '/' . chr(3) . '/'; $muster[2] = '/' . chr(32) . '+/'; $muster[3] = '/</'; $muster[4] = '/>/'; $ersetzen[0] = ''; $ersetzen[1] = ''; $ersetzen[2] = chr(32); $ersetzen[3] = ''; $ersetzen[4] = ''; $buffer = preg_replace($muster, $ersetzen, $buffer); $log[$z1] = $buffer; $z1++; } } fclose($handle); $len0 = count($log); for ($i0 = 0; $i0 < $len0; $i0++) { $len1 = count($scan_typ1); for ($i1 = 0; $i1 < $len1; $i1++) { if (preg_match('/(' . $scan_typ1[$i1] . ')/', strtolower($log[$i0])) && preg_match('/%/', $log[$i0])) { preg_match('/[0-9]{2}\\|[0-9]{2}\\|[0-9]{2}/', $log[$i0], $scan_datum, PREG_OFFSET_CAPTURE); $a_typ = $scan_typ2[$i1]; $scan_start = $i0 + 1; // Zeilen angabe(Immer eins mehr als aktuells Array) for ($i2 = 1; $i2 <= $scan_timeout; $i2++) { $zeile = $log[$i0 + $i2]; if (!isset($log[$i0 + $i2])) { break 1; } $split = preg_split('/' . chr(32) . '/', $log[$i0 + $i2]); $len3 = count($split); for ($i3 = 1; $i3 <= $len3; $i3++) { $split[$i3] = preg_replace('/[^0-9:]/', '', $split[$i3]); if (koord_check($split[$i3]) || stristr($zeile, "gn-scr1pt by wurst - #wursts.scr1pt1ng-ecke")) { $scan_ende = $scan_start + $i2; $last = $last + $scan_ende - 1; break 4; } } } if (!isset($scan_ende) && $i2 == 6) { unset($scan_start); } } } } if (!isset($scan_ende)) { $last--; if (!isset($scan_start)) { $last = count($log) + $last - 1; } } $query[0] = 'DELETE FROM gn4irc_scans WHERE chan="' . $chan . '"'; $query[1] = 'INSERT INTO gn4irc_scans (tag, zeile, chan) VALUES ("' . date("d") . '", "' . $last . '", "' . $chan . '")'; mysql_multi_query($query); if (isset($scan_ende)) { // mindestens ein scan gefunden for ($i0 = $scan_start; $i0 <= $scan_ende; $i0++) { $log[$i0 - 1] = trim($log[$i0 - 1]); $scan .= $log[$i0 - 1] . chr(13) . chr(10); } //eval('irc_'.$a_typ.'_scan('.$scan.');'); $s_datum = preg_replace('/\\|/', ':', $scan_datum[0][0]); $s_datum .= " " . date("d.m.Y"); $s_datum = substr($s_datum, 0, 5) . substr($s_datum, 8); if ($a_typ == "sek") { irc_sek_scan($scan, $s_datum, 1); } elseif ($a_typ == "unit") { irc_unit_scan($scan, $s_datum, 1); } elseif ($a_typ == "g") { irc_g_scan($scan, $s_datum, 1); } elseif ($a_typ == "mili") { irc_mili_scan($scan, $s_datum, 1); } unset($scan_start); unset($scan_ende); irc_scan_log_auslesen($pfad, $datei, $datum); } }
function scan_pruefen($scan) { global $scan_speichern, $scan_debug; $scan_speichern->echo = 1; if (stristr($scan, "sektorscan")) { irc_sek_scan($_POST['irc_scan']); } if (stristr($scan, "einheitenscan")) { irc_unit_scan($_POST['irc_scan']); } if (preg_match('/(gesch.*zscan)/', strtolower($scan))) { irc_g_scan($_POST['irc_scan']); } if (preg_match('/(mili.*scan)/', strtolower($scan))) { irc_mili_scan($_POST['irc_scan']); } if (preg_match('/flotte.*von/iU', $scan)) { irc_flotte($scan); } }