|
Blog - Forum - Newsletter
|
Dynamische Homepage
Wechselnde Textausgaben
<?php
$begr[] = "Guten Morgen!"; $begr[] = "Guten Tag!"; $begr[] = "Guten Abend!"; ?> Jetzt nutzen wir eine if-Abfrage. Zuerst fragen wir, ob es am (Vormittag) oder pm
(Nachmittag) ist. So geht's: <?php
if (date("a") == "am") { $be = $begr[0]; } else if (date("H") >= 12 && date("H") < 18) { $be = $begr[1]; } else { $be = $begr[2]; } echo $be; ?> So. Jetzt sollte eigentlich alles funktionieren. Hier noch einmal der gesamte
Quellcode: <?php
$begr[] = "Guten Morgen!"; $begr[] = "Guten Tag!"; $begr[] = "Guten Abend!"; if (date("a") == "am") { $be = $begr[0]; } else if (date("H") >= 12 && date("H") < 18) { $be = $begr[1]; } else { $be = $begr[2]; } echo $be; ?> 2. Bezogen auf den Zufall PHP bietet die Möglichkeit, eine zufällige Zahl zu berechnen. Man benutzt dazu die Funktion mt_srand. Aber zuerst brauchen wir noch einen Array, aus dem dann eine Teilvariable ausgewählt wird. Nennen wir sie "$spruch".
<?php $spruch[] = "Alles wird gut"; $spruch[] = "Wir machen nicht alles anders - aber vieles besser."; $spruch[] = "Auf der Suche nach günstigem Webspace? Ich auch!"; $spruch[] = "Rauchen gefährdet die Gesundheit"; ?>
Nun haben wir einen Array mit vier Sprüchen erstellt. Fehlt nur noch die Zufallsauswahl. Diese setzen wir unter den
letzten Spruch vor das Ende des PHP-Teils. Das Script sollte dann so aussehen:
<?php $spruch[] = "Alles wird gut"; $spruch[] = "Wir machen nicht alles anders - aber vieles besser."; $spruch[] = "Auf der Suche nach günstigem Webspace? Ich auch!"; $spruch[] = "Rauchen gefährdet die Gesundheit"; mt_srand((double)microtime()*1000000); $zufall = mt_rand('0',count($spruch)-1); $ausgabe = $spruch[$zufall]; echo $ausgabe; ?>
Natürlich sind beliebig viele Array-Elemente definierbar. Wir haben aus Zeitgründen nur vier genommen. mt_rand
gibt eine Zufallszahl zwischen dem Anfangswert (bei uns 0) und dem Endwert (bei uns count($spruch)-1, also 3) zurück.
mt_srand erstellt einen internen Startwert für den Zufallsgenerator. Ein Ergebniswert wird hierbei nicht
zurückgegeben.
Gästebuch <center><form action="eintragen.php" method="post">
<table border="0" width="50%"> <tr> <td align="right">Name: <td><input name="name" size="20"> <tr> <td align="right">E-Mailadresse: <td><input name="email" size="20"> <tr> <td align="right">Betreff: <td><select name="betreff" size="1"> <option>Homepage</option> <option>Frage</option> <option>Downloads</option> <option>Sonstiges</option> <tr> <td align="right" valign="top">Meinung: <td><textarea name="text" rows="7" cols="32"></textarea> <tr> <td> <td><input type="submit" value="Eintragen!"> </table> </form></center> Das kann man unter einem beliebigen Namen speichern, außer eintragen.php, da
diese Datei jetzt erstellt wird. Zuerst bedenken wir wieder: die Namen, die wir den einzelnen Feldern vergeben haben,
können wir jetzt als Variablen benutzen. Das vereinfacht die Sache. Hier zuerst einmal das Script, die Erklärung
steht darunter.
<?php
if ($name != "" && $text != "") { $text = ereg_replace("<","<",$text); $text = ereg_replace(">",">",$text); $text = ereg_replace('\\\"',""",$text); $text = ereg_replace("\\\'","'",$text); $text = ereg_replace("#","~",$text); $text = ereg_replace("\n","<br>",$text); $text = ereg_replace("\r","",$text); $datei = fopen("eintraege.txt","a+"); fputs($datei,$name."#".$email."#".$betreff."#".$text."\n"); fclose($datei); } else { echo "Die Daten sind noch nicht komplett! Der Name und das Textfeld müssen ausgefüllt sein!"; } ?> Zuerst wird geprüft, ob $name und $text ausgefüllt sind. Ist das der Fall,
werden einige Standardzeichen in $text durch ihre HTML-Synonyme ersetzt. Dann kommt der Hauptteil der Geschichte: man setzt
eine Variable ($datei) auf fopen("datei.format","Modus") und öffnet so eine Datei. Die
verschiedenen Modi und deren Folgen hier noch einmal übersichtlich:
$name#$email#$betreff#$text Hier ein Beispiel: Susanne#susanne@hotmail.com#Frage#Wann wird denn jetzt das Design geändert? Die "#"-Zeichen erkläre ich später. Am Ende wird ein Zeilenumbruch durch "\n" erreicht, sodass jeder Eintrag in eine eigene Zeile kommt. Danach wird die Datei mit fclose geschlossen. Die Daten sind jetzt gespeichert und müssen wiedergegeben werden. Das machen wir mit explode(). explode() zerlegt eine Datei in Stücke, wobei es dafür ein definiertes Trennzeichen verwendet. In unserem Fall "#". Das heißt also, dass jetzt jeder Teil einzeln als Variable zur Verfügung steht. Hier der Quellcode, um die Einträge anzeigen zu lassen (kann man unter das Formular setzen): <?php
$eintrag = file("eintraege.txt"); $ausgabe = ""; $gesamt = count($eintrag)-1; for ($i = $gesamt;$i>=0;$i--) { $element = explode("#",$eintrag[$i]); $ausgabe .= "<table border='1' width='100%'>"; $ausgabe .= "<tr><td width="50%"><b>Name:<td width="50%">".$element[0]; $ausgabe .= "<tr><td><b>E-Mail:<td>".$element[1]; $ausgabe .= "<tr><td><b>Betreff:<td>".$element[2]; $ausgabe .= "<tr><td><b>Eintrag:<td>".$element[3]; $ausgabe .= "</table>"; } echo $ausgabe; ?> Die Einträge werden jetzt in dieser Reihenfolge dargestellt: die Neuesten zuerst,
dann immer älter.
Counter <?php
if (!file_exists("counter.txt")) { fopen("counter.txt","a"); } $counter = fopen("counter.txt","r+"); $aufruf = fgets($counter,20); $aufruf = $aufruf + 1; rewind($counter); fputs($counter,$aufruf); echo $aufruf; fclose($counter); ?> Wenn die Datei nicht existiert, wird sie angelegt. Dann werden die ersten 20 Stellen
der Datei counter.txt ausgelesen durch fgets. 20 Stellen sollten für einen Counter
genügen. Da es sich um eine Zahl handelt, kann mann jetzt zu dieser Zahl eins dazuzählen. Durch
rewind wird der Cursor an die erste Stelle der Datei gesetzt. Mit
fputs wird der neue Counterstand eingetragen und mit echo angezeigt.
fclose Schließt dann die Datei wieder.
|
|
| Mathe - Physik - Informatik - Kunst - Deutsch - Latein - Englisch - Französisch - Italienisch - Spanisch - Politik - Wirtschaft |
| Impressum |
|
|
| Kontakt | Social Bookmarks |
Letzte Änderung: 01.01.1970 01:00 Uhr
URL: http://www.lern-online.net/informatik/programmiersprachen/php/lektion04.php