crysys Skrevet 31. oktober 2007 Del Skrevet 31. oktober 2007 Jeg holder på å lage te script som skal hente ut brukere fra en teamspeak server. Dette gjøres via socket, og resultatet skal i følge doc se slik ut: id created lastonline name 1864 09-07-2003 23:38:38 04-03-2004 09:18:10 "SantaClaus" 1878 09-07-2003 23:40:11 25-02-2004 19:12:53 "SA_Account99" Men resultatet jeg får tilbake er bare en lang streng. id sa created lastonline name 1864 -1 09-07-2003 23:38:38 04-03-2004 09:18:10 "SantaClaus" 1878 0 09-07-2003 23:40:11 25-02-2004 19:12:53 "SA_Account99" Det jeg vil oppnå er noe alla dette her: while(preg_match("(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)"\"!i",$out,$match)) { $array[$i]['player_id']=$match[1]; $array[$i]['sa']=$match[2]; $array[$i]['created']=$match[3]; $array[$i]['lastonline']=$match[4]; $array[$i]['username']=$match[5]; $out=str_replace($match[0],"",$out); $i++; } Case min som sikkert mange ser, er at jeg har strengt tatt ikke peiling på hvordan jeg skal få denne til å fungere. Noen som har en ide om hvordan jeg kan gjøre dette? Lenke til kommentar
Stian Jacobsen Skrevet 31. oktober 2007 Del Skrevet 31. oktober 2007 En, gå å legg deg.. å sitte til kl.5 om natten å klø seg i hodet gir ofte ikke så imponerende resultater... to, feilen (etter hva jeg kan se) er at du printer ut ting i feil rekkefølge Lenke til kommentar
Stian Jacobsen Skrevet 31. oktober 2007 Del Skrevet 31. oktober 2007 Fjern SA så slipper du den -1 Lenke til kommentar
erkos Skrevet 31. oktober 2007 Del Skrevet 31. oktober 2007 (endret) Her er en måte å gjøre det på: // Eksempel $streng = ('id sa created lastonline name 1864 -1 09-07-2003 23:38:38 04-03-2004 09:18:10 "SantaClaus" 1878 -1 09-07-2003 23:40:11 25-02-2004 19:12:53 "SA_Account99" '); $output = array(); $i = 0; $a = explode("\n", $streng); foreach($a as $linje) { if(preg_match('/(\d+)\s+([-]?\d+)\s+(\d+-\d+-\d+\s+\d+:\d+:\d+)\s(\d+-\d+-\d+\s+\d+:\d+:\d+)\s"(\w+)"/i', $linje, $matches)) { $output[$i]['player_id'] = $matches[1]; $output[$i]['sa'] = $matches[2]; $output[$i]['created'] = $matches[3]; $output[$i]['lastonline'] = $matches[4]; $output[$i]['username'] = $matches[5]; $i++; } } print_r($output); Gir output: Array ( [0] => Array ( [player_id] => 1864 [sa] => -1 [created] => 09-07-2003 23:38:38 [lastonline] => 04-03-2004 09:18:10 [username] => SantaClaus ) [1] => Array ( [player_id] => 1878 [sa] => -1 [created] => 09-07-2003 23:40:11 [lastonline] => 25-02-2004 19:12:53 [username] => SA_Account99 ) ) Endret 31. oktober 2007 av erkos Lenke til kommentar
crysys Skrevet 31. oktober 2007 Forfatter Del Skrevet 31. oktober 2007 Takker meget. Dette funka ganske bra. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå