WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP preg_match schluckt Daten zwischen < > (http://www.wcm.at/forum/showthread.php?t=227333)

iG0r 16.03.2008 00:44

PHP preg_match schluckt Daten zwischen < >
 
Ich bin schon leicht verzweifelt :(
Wollte heute mal so nebenbei einen kleinen Socket Server und Log Parser für einen Team Fortress 2 Gameserver basteln. Es klappt auch fast alles wunderbar. Leider schluckt mir preg_match die Steam-Id des Spielers, was nich gerade optimal ist. Beispiel:

PHP-Code:


<?php

$mystream 
'L 03/15/2008 - 22:45:37: "tester<317><STEAM_0:1:23456789><Blue>" say "das ist ein test!"';
preg_match("^(.*?) (\d+/\d+/\d+) (.*?) (\d+:\d+:\d+:) (\".*?<\d+><STEAM_\d+:\d+:\d+><.*?>\") (say|say_team) (\".*?\")$^"$mystream$matches);
print_r($matches);

?>

Und das Array das ist bekomme, sieht dann leider so aus:

PHP-Code:


Array
(
    [
0] => L 03/15/2008 22:45:37"tester<317>" say "das ist ein test!"
    
[1] => L
    
[2] => 03/15/2008
    
[3] => -
    [
4] => 22:45:37:
    [
5] => "tester<317>"
    
[6] => say
    
[7] => "das ist ein test!"


Leider fehlt bei [5] nach dem Spielernamen und id <STEAM_0:1:23456789><Blue>. Warum hier die Steamid und dann Noch das Team geschluckt wird, ist mir schleierhaft. Warscheinlich fehlt mir da irgendwas :look:

So einfach wie ich mir das gedacht habe, ist es dann im Detail wohl doch nicht. Die Steam-id würde ich schon sehr gerne mit loggen, warum wird alles nach der Spieler-id <317> bis zum Ende der Anführungszeichen " geschluckt?

Hilfe!
Danke :-)

iG0r 18.03.2008 20:35

Hab das ganze jetzt in Perl erledigt, anscheinend ist da PHP noch nicht soweit ;)

gorie 19.03.2008 09:45

Moin moin
 
php is scho so weit, keine Sorge ;)

Es liegt viel mehr daran, dass das die beiden Dinge innerhalb der spitzen Klammern vom Browser als HTML Tags erkannt werden und deshalb nicht sichtbar sind... schau dir dazu einfach mal den Seitenquelltext der ausgabe an (:

iG0r 20.03.2008 10:49

Du könntest recht haben, der Fehler ist halt bei Perl so nicht vorgekommen, weil die Ausgabe in der Console war :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag