[PHP] Was heisst den bitte das hier ?!
-
Hi,
Was heisst und bedeutet denn diese zeile ?
PS: Bitte nicht auf www.php.net verweisen, da verstehe ich es nicht
if(preg_match('#Name: (.*) from WONID: (\d*) .* cheat .* from (.*).#', $arr[$i], $match)) { [...] } Hier der ganze Code des PHP-Scripts: [code] <? // FTP user $user = '***********'; // FTP Passwort $pass = '********'; // FTP server $ftp_server = 'ftp.netgamezone.de'; $cheatcount = 0; $arr = file("ftp://$user:$pass@$ftp_server/Half-Life/cstrike/addons/hlguard/logs/CheaterList.txt"); $eintrag = "<table width='474' border='0' cellspacing='1' cellpadding='0'> <tr> <td width='212'><b><font face='Tahoma' size='2'>Name:</font></b></td> <td width='152'><b><font face='Tahoma' size='2'>WonID:</font></b></td> <td width='106'><b><font face='Tahoma' size='2'>Cheat:</font></b></td> </tr>"; for($i=0; $i<count($arr); $i++) { if(preg_match('#Name: (.*) from WONID: (\d*) .* cheat .* from (.*).#', $arr[$i], $match)) { $match[1] = htmlspecialchars($match[1]); $nickname2=str_replace("'"," ","$match[1]"); $nickname2=str_replace("\""," ","$nickname2"); $eintrag .= "<tr> <td width='212'><font face='Tahoma' size='2'>$nickname2</font></td> <td width='152'><font face='Tahoma' size='2'>$match[2]</font></td> <td width='106'><font face='Tahoma' size='2'>$match[3]</font></td> </tr>"; $cheatcount++; } } $eintrag .= "</table>"; echo("$eintrag"); echo "<br><font face=tahoma size=2>$cheatcount Cheater gefunden.</font>"; ?>
[ Dieser Beitrag wurde am 10.12.2002 um 18:09 Uhr von ranger81 editiert. ]
[ Dieser Beitrag wurde am 10.12.2002 um 18:10 Uhr von ranger81 editiert. ]
-
Da wird ein String anhand eines regulären Ausdrucks untersucht und Teile (Fundstellen) daraus durch neue ersetzt! Was genau willst du wissen?
-
hi, danke schonmal für die hilfe.
Den teil hier:
'#Name: (.) from WONID: (\d) .* cheat .* from (.*).#'
versteh ich nicht. Also in einer Zeile in der CheaterList.txt steht z.b. das hier:
12/09/2002 09:33:36 -> [UZI] uniqueid:333333 IP:80.80.80.80 found terrorspec <Active Respawn Cheat>
-
hi
zum beispiel der stern.. kein zeichen, ein zeichen oder mehrere ..reguläre ausdrücke sind eine welt für sich,...
hier ist der anfang ganz übersichtlich...
:
http://www.weigl.de/seminar/php4/zeichen_regex.htm[ Dieser Beitrag wurde am 10.12.2002 um 18:35 Uhr von elise editiert. ]
-
Hi, habs jetz mal abgeändert, dass der aus der CheaterList.txt die diesen Inhalt hat:
12/08/2002 22:23:56 -> [sl3]?_!_? uniqueid:227318 IP:213.141.100.73 found bunny2 <Active Bunny-hop Script> 12/08/2002 22:24:00 -> [sl3]?_!_? uniqueid:227318 IP:213.141.100.73 found Rhop <Active Bunny-hop Script> 12/09/2002 09:33:33 -> [UZI] uniqueid:2467577 IP:80.83.50.221 found counterspec <Active Respawn Cheat> 12/09/2002 09:33:36 -> [UZI] uniqueid:2467577 IP:80.83.50.221 found terrorspec <Active Respawn Cheat> 12/10/2002 14:34:52 -> Player uniqueid:3028783 IP:217.84.152.98 found bunny <Active BunnyHop Script>
nach folgendes ausgibt.
eine Tabelle, die ungefähr so aussehen sollte:+----------+------------+---------------------------------+ | NICKNAME | WONID | CHEAT | +----------+------------+---------------------------------+ |[sl3]?_!_?|227318 |bunny2 <Active Bunny-hop Script> | | | UND SO WEITER....
Und hier der Code des Script, aber es gibt nichts aus , kann mir jemand die richtige Zeile sagen ? Danke
<? // FTP user $user = 'ftpuser'; // FTP Passwort $pass = 'ftppasswort'; // FTP server $ftp_server = 'ftpserverIP'; $cheatcount = 0; $arr = file("ftp://$user:$pass@$ftp_server/Half-Life/cstrike/addons/hlguard/logs/aimwarn.txt"); $eintrag = "<table width='474' border='0' cellspacing='1' cellpadding='0'> <tr> <td width='212'><b><font face='Tahoma' size='2'>Name:</font></b></td> <td width='152'><b><font face='Tahoma' size='2'>WonID:</font></b></td> <td width='106'><b><font face='Tahoma' size='2'>Cheat:</font></b></td> </tr>"; for($i=0; $i<count($arr); $i++) { if(preg_match('.* -> (.*) uniqueid:(\d*) IP:.* found (.*)', $arr[$i], $match)) { $match[1] = htmlspecialchars($match[1]); $nickname2=str_replace("'"," ","$match[1]"); $nickname2=str_replace("\""," ","$nickname2"); $eintrag .= "<tr> <td width='212'><font face='Tahoma' size='2'>$nickname2</font></td> <td width='152'><font face='Tahoma' size='2'>$match[2]</font></td> <td width='106'><font face='Tahoma' size='2'>$match[3]</font></td> </tr>"; $cheatcount++; } } $eintrag .= "</table>"; echo("$eintrag"); echo "<br><font face=tahoma size=2>$cheatcount Aimbot-Warnings gefunden.</font>"; ?>
-
Der Pattern-String muss immer in Slashs eingeschlossen sein!
preg_match('/.* -> (.*) uniqueid:(\d*) IP:.* found (.*)/', $arr[$i], $match)
Du hast die einführung von elise offenbar noch ncht gelesen - wäre wohl empfehlenswert, wenn du auch wissen willst, was du tust
[ Dieser Beitrag wurde am 10.12.2002 um 22:03 Uhr von flenders editiert. ]
-
hallo, danke aber es geht leider noch nicht, schau es dir mal an:
http://banlist.dsuclan.de/start.php?id=aimwarn
da müsste er ja die daten anzeigen, aber warum kommt nichts ? ich hab jetz genau das script wie du es mir gesagt hast
-
if(preg_match([...]))
{
[...]
}
else echo "<tr><td colspan=3>Fehler in preg_match!</td></tr>";Bau das mal ein, damit man sieht, ob preg_match korrekt ausgeführt wird!
[ Dieser Beitrag wurde am 10.12.2002 um 22:13 Uhr von flenders editiert. ]
-
ok ist eingebaut !
-
Das ist allerdings komisch, bei mir klappt es nämlich!
[edit]URL entfernt[/edit][ Dieser Beitrag wurde am 10.12.2002 um 23:07 Uhr von flenders editiert. ]
-
bist du dir sicher, dass die txt-Datei richtig geladen wird?
-
ich bin wieder mega-doof
kannst du deinen code mal hier schreiben ?
kann es daran liegen, dass er vielleicht die ftp datei gar nicht richtig bekommt ?<doof>wie kann ich testen dass die datei richtig geladen wurde ?</doof>
[ Dieser Beitrag wurde am 10.12.2002 um 22:22 Uhr von ranger81 editiert. ]
-
hab jetz mal als file ("aimwarn.txt")
angegeben und die datei mit in das verzeichnis hochgeladen. aber selbst da geht es nicht...
-
Probiers mal hiermit:
user:ftp_server/Half-Life/cstrike/addons/hlguard/logs/aimwarn.txt", 21);
if (fp) { fpassthru (fp);
fclose($fp);
}Habs aber nicht getestet!
-
bei mir matched er falsch.. nur drei buchstaben kommen..
aber ich bin heute abend zu müde, mich durch regex durchzuschlängeln..
-
Geht sogar noch viel einfacher:
readfile("ftp://pass@$ftp_server/Half-Life/cstrike/addons/hlguard/logs/aimwarn.txt");
-
Original erstellt von elise:
**bei mir matched er falsch.. nur drei buchstaben kommen..aber ich bin heute abend zu müde, mich durch regex durchzuschlängeln..**
zurück.. war auch zu müde, meinen test zu erneuern auf flenders matching.. sorry, der geht sicher, habe ihn übersehen
-
hab ins falsche verzeichnis upgeloadet. jetz geht es wenn die log mit auf dem webserver liegt. aber das mit dem tfp geht noch nicht. dein script konnte ich nicht so recht einbauen, da ich nicht weiß wie es dann wiedergeht mit dem $fp
-
hab jetz:
user:ftp_server/Half-Life/cstrike/addons/hlguard/logs/CheaterList.txt");und jetz bringt er mir Fehler in preq_match
-
Nein!!!
einfach das mit dem readfile([...]) oben an dein Script hängen! Es gibt einfach die Datei direkt an den Browser weiter (wird ausgegeben)!
Der Rest bleibt wie bisher[ Dieser Beitrag wurde am 10.12.2002 um 22:52 Uhr von flenders editiert. ]
-
sorry, aber ich habs jetz so verstanden und gemacht, aber er gibt wieder nichts aus.
http://banlist.dsuclan.de/start.php?id=aimwarn<? // FTP user $user = '*******'; // FTP Passwort $pass = '**********'; // FTP server $ftp_server = 'ftp.netgamezone.de'; $cheatcount = 0; $arr = file("ftp://$user:$pass@$ftp_server/Half-Life/cstrike/addons/hlguard/logs/CheaterList.txt"); readfile("ftp://$user:$pass@$ftp_server/Half-Life/cstrike/addons/hlguard/logs/CheaterList.txt"); $eintrag = "<table width='474' border='0' cellspacing='1' cellpadding='0'> <tr> <td width='212'><b><font face='Tahoma' size='2'>Name:</font></b></td> <td width='152'><b><font face='Tahoma' size='2'>WonID:</font></b></td> <td width='106'><b><font face='Tahoma' size='2'>Cheat:</font></b></td> </tr>"; for($i=0; $i<count($arr); $i++) { if(preg_match('/.* -> (.*) uniqueid:(\d*) IP:.* found (.*)/', $arr[$i], $match)) { $match[1] = htmlspecialchars($match[1]); $nickname2=str_replace("'"," ","$match[1]"); $nickname2=str_replace("\""," ","$nickname2"); $eintrag .= "<tr> <td width='212'><font face='Tahoma' size='2'>$nickname2</font></td> <td width='152'><font face='Tahoma' size='2'>$match[2]</font></td> <td width='106'><font face='Tahoma' size='2'>$match[3]</font></td> </tr>"; $cheatcount++; } else echo "<tr><td colspan=3>Fehler in preg_match!</td></tr>"; } $eintrag .= "</table>"; echo("$eintrag"); echo "<br><font face=tahoma size=2>$cheatcount Cheater gefunden.</font>"; ?>