Scorpion2410 Geschrieben 19. April 2005 Geschrieben 19. April 2005 Hallöle... wir coden grad in der Schule zwangsweise an einem counter rum, also so in ganz einfaches dingen. Jetzt sollen wir die Ausgabe grafisch machen, mit vorgegebenen *.gif 's. Also von 0-9. Wie genau löse ich das jetzt am besten? <html> <head> <title>Counter</title> </head> <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000"> <? $datei=fopen("counter.txt",'r'); $zeile=fgets($datei,1000); echo "Sie sind der $zeile Besucher."; $zeile++; fclose($datei); $datei=fopen('counter.txt','w'); fwrite($datei,$zeile); fclose($datei); ?> </body> </html> Wie gesagt, einfache geschichte, aber bitte keinen vollständigen Code Zitieren
DX-Rated Geschrieben 19. April 2005 Geschrieben 19. April 2005 Du hast für jede Ziffer von 0-9 ein gif-Bild, richtig? Dann brauchst Du quasi nur den Zählerstand in die einzelnen Ziffern aufbrechen (Einer, Zehner, Hunderter, etc.), und für jede Ziffer das entsprechende Bild ausgeben. Zitieren
Scorpion2410 Geschrieben 19. April 2005 Autor Geschrieben 19. April 2005 Also doch mit explode ? mhm, explode bricht die Zahl dann ja auseinander und ich kann die einzelne Stücke dann ja in einzelne Variablen setzen oder? Und dann mit if & else halt die zahlen ausgeben, oder geht das einfacher? Sorry, bin php-Dau Zitieren
DX-Rated Geschrieben 19. April 2005 Geschrieben 19. April 2005 Für explode() brauchst Du ein Trennzeichen, und soweit meine mathematischen Kenntnisse mich nicht im Stich lassen, hat eine Integerzahl sowas nicht. Du kannst das relativ einfach mathematisch lösen. Gehen wir mal von einer dreistelligen Zahl aus. Da es sich beim Zählerstand um eine Integervariable handelt, kannst Du die Zahl durch 100 teilen, um an die Hunderter zu kommen, die Du in einer Integervariablen speicherst, denn die Nachkommstellen werden bei Integerzahlen abgeschnitten. Wenn Du die Hunderter einmal hast, sollte der Rest kein Problem sein. Zitieren
TinTin Geschrieben 19. April 2005 Geschrieben 19. April 2005 substr() könnte hier dein freund werden. lass die die anzahl der zeichen ermitteln und dann kannst du dir mit substr() die einzelnen ziffern ausgeben lassen. Ciao TinTin Zitieren
Scorpion2410 Geschrieben 19. April 2005 Autor Geschrieben 19. April 2005 ahh... Wobei ich mal wieder glaube unser Lehrer hat einfach nur ne Aufgabe gestellt ohne selbst eine Idee zu haben wie das gelöst wird Vielen Dank für die Hilfe, falls jemand noch einenen weiteren Tipp hat, immerher damit... Zitieren
oneside Geschrieben 19. April 2005 Geschrieben 19. April 2005 $x=0; $zahlen = array(); do{ $zahlen[$x] = substr($zeile,$x,1); $x++; }while($zahlen[$x-1] != ""); foreach($zahlen as $wert){ print ("<img scr=$wert.gif width=100 height=100>"); } Da brauchst du für jede Zahl (0-9) eine .gif Datei und die wird dann ausgegeben. Zitieren
Johannes Buchner Geschrieben 20. April 2005 Geschrieben 20. April 2005 bin einverstanden, aber bitte verwende in der Schleife: echo '<img src="'.$wert.'gif" width="100" height="100">'; statt <img scr ... Zitieren
oneside Geschrieben 20. April 2005 Geschrieben 20. April 2005 Sicher, da hast Du Recht. habe wohl einen Dreher drinnen gehabt... Die width- und height-Attribute müssen natürlich auch noch auf die richtige Größe angepasst werden. Eine weitere Lösung wäre die GD Library um die Grafiken dynamisch zu erzeugen, was aber für Euer kleines Schulscript übertrieben und vielleicht zu anspruchsvoll sein dürfte. Gruss Oneside Zitieren
Johannes Buchner Geschrieben 20. April 2005 Geschrieben 20. April 2005 Mit gd war auch mein erster Gedanke, das wär schon lustig Aber mit 10 Bildern ist es wahrscheinlich effizienter ... Zitieren
kills Geschrieben 20. April 2005 Geschrieben 20. April 2005 du könntest den string auch folgendermaßen durchlaufen: $count = "0256984"; for ( $i = 0; $i < strlen( $count); $i++) { echo '<img src="$count{$i}.gif"/>'; } [/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.