Gå til innhold

Problem med parsing av string


Anbefalte innlegg

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
Videoannonse
Annonse

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 av erkos
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...