22. januar 2005 - 11:02
Der er
3 kommentarer og 1 løsning
Problem med at læse filer
Har lavet følgende script, som skulle åbne en bestemt fil og derefter hive værdierne ud hver gang den møder et "[Race]". ----- $url="logs/".$filnavn; $cont = file_get_contents( $url ); $arr = preg_split( "/\[Race\]/s", $cont ); unset( $arr[0] ); $arr = array_unique( $arr ); foreach ( $arr as $trackstat ) { $lines = explode( "\r", trim( $trackstat ) ); foreach ( $lines as $line ) { $var = explode( "=", $line ); if ( count( $var ) == 2 ) { $key = trim( $var[0] ); $val = trim( $var[1] ); echo "$key = $val<br>"; } } } ----- Problemet er at det ikke virker:) Har en mistanke om at det skyldes at jeg sætter "url'en" forkert for filnavnet sættes rigtigt. Filen eksekveres og skal så lede efter den pågældende fil i undermappen "logs". Filen der læses (en txt-fil), ser således ud: [Race] RaceMode=5 Scene=GAMEDATA\LOCATIONS\Magny-Cours\Magny-Cours.TRK AIDB=GAMEDATA\LOCATIONS\Magny-Cours\Magny-Cours.AIW Race Length=0.100 Track Length=4450.9355
Annonceindlæg fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
22. januar 2005 - 11:18
#1
Og er det muligt at bruge "jokertegn" i den tekst der skal søges efter? Jeg har f.eks. en header, som hedder [slot???] - hvor ??? er et vilkårligt nummer. Eksempel: [Slot000] Driver=Soren Riis Vehicle=Lister Storm Penalty=0 Place=1 Laps=0 RaceTime=DNF Reason=0 Hvordan får jeg så læst de værdier ind?
22. januar 2005 - 17:21
#2
Jeg har nu løst første problem.. Men logfilen hvor alle de [slot???] fremkommer, volder mig stadigt problemer.. Jeg kan ikke finde ud af at få dem læst ordentligt ind:(
22. januar 2005 - 18:24
#3
<? function find_yngste_fil( $mappesti ) { if ($dh = opendir($mappesti)) { $yngst = 0; $yngstfil = ""; while (($file = readdir($dh)) !== false) { if( $file!="." && $file!=".." && !is_dir( $mappesti ."/" .$file ) ) { $tmp = filemtime ( $mappesti ."/" .$file ); if( $tmp > $yngst ) { $yngst = $tmp; $yngstFil = $file; } } } closedir($dh); return $yngstFil; } } $filnavn=find_yngste_fil( "logs" ); $url="logs/".$filnavn; $cont = file_get_contents( $url ); $arr = preg_split( "/\[Slot(.*)\]/s", $cont ); unset( $arr[0] ); $arr = array_unique( $arr ); foreach ( $arr as $trackstat ) { $lines = explode( "\r", trim( $trackstat ) ); foreach ( $lines as $line ) { $var = explode( "=", $line ); if ( count( $var ) == 2 ) { $key = trim( $var[0] ); $val = trim( $var[1] ); // Slet echo og gem i stedet i databasen... echo "$key = $val<br>"; } } } ?> Det her er hvad jeg har rodet mig frem til indtil videre... Hvad er det lige jeg gør galt? ---- Eksempel på logfil: [Slot000] Driver=Claus Juel Lobby Username=CeeJay Vehicle=Ferrari 550 Maranello Penalty=0 Place=1 Laps=24 BestLap=1:34.647 RaceTime=DNF Reason=0 [Slot001] Driver=Diego Sartori Lobby Username=Diego Sartori Vehicle=Lamborghini Murcielago R-GT Penalty=0 Place=2 Laps=6 BestLap=1:35.450 RaceTime=DNF Reason=0