View Single Post
Hei!
Jeg har tatt på meg ansvaret som seater for årets TG for vennegjengen, så jeg tenkte jeg skulle lage et seatmap der folk skriver inn navnet sitt istedenfor at jeg skal ta imot alle navnene og sette det inn i en fil selv.
Systemet serveren kjører på har PHP5, Apache, MySQL og er en Ubuntu server 11.10.

Jeg har to mapper.
topseats/
botseats/
I hver av de mappene blir det laget filer etter hvert som brukerne skriver inn navnene sine i en html form. Hver html-form skriver til enten topseats/ eller botseats/ og avhengig av hvilken plass man velger skriver man til 1, 2, 3, 4 .... 25.txt
(Dersom man kan få php til å lese fra en LINJE i en fil hadde det vært supert, har ikke funnet den funksjonaliteten enda...)

Uansett, jeg har laget dette scriptet som skal lese fra en fil:

Kode

<?php
$filename = 'topseats/1.txt' ;
$handle = fopen($filename, "r") ;
$contents = fread($handle, 50) ;

if (file_exists($filename)){ 
	echo "$contents" ; // Tell who owns the seat
	fclose($handle) ; // Close file
	exit ;
	}
else { 
	echo "Ledig plass!" ; 
	} /* text file does not exist => seat free */  
?>
(dersom noen vil bytte plass må jeg manuelt slette fila, men det er null stress)


Med 25 filer (i hver mappe) blir det enormt med editing og scripts å kjøre, så jeg lurte på om det var mulig å lage et script som loopet gjennom alle filene (evt. lines hvis jeg får det til å funke)

Noe ala

Kode

<?php
$seats = count(glob("topseats/" . "*.txt")) ; //teller antall filer i mappa
while $seats > 1, until $seats = $seats {
$seat = "topseats/$seats" . ".txt" // Lager en variabel der den leser filen loopen har kommet til. Starter på 1.txt og slutter på 25.txt (siden da er $seats = $seats )

/* Her kommer scriptet jeg linket ovenfor */
}
?>
Jeg har ingen anelse om noe av det jeg skrev er riktig, men poenget er at servern først finner ut hvor mange filer det er i mappa, og så looper den gjennom alle og leser ut det som står der.

Noe jeg kom på nå er jo at dersom man registrer seg på sete 15, og ingen har tatt sete 10-14, så vil den jo lese ut 10 filer, og derfor ikke lese ut endringen i fil 15... Er det mulig å lese ut KUN filer som er større enn 0 B? (dvs at de ikke har noe innhold)