[TUT] PHP Lernen [PHP]

  • Hallo Retrotown,

    Heute zeige ich euch wie man PHP Lernt.
    Dann fange ich mal an.

    Schritt 1:
    PHP ist eine serverseitige Scriptsprache, das heißt, damit man PHP Programme bzw. die PHP Scripts ausführen kann, benötigt man einen Webserver. Zum Glück geht das installieren leichter als es sich anhört.
    Mit <input type="Submit" value="Absenden">
    </form>
    [/code]
    Für dieses Formular benötigen wir kein PHP, also können wir das Formular auch in einem normalen HTML-Dokument speichern (z.B. seite1.html).

    Es ist auch wichtig, dass wir allen Eingabefeldern eineneinzigartigen Namen zuweisen, damit wir sie nach dem Absenden auf der zweiten Seite auch korrekt abfragen können.
    Haben zwei Felder den selben Namen, so wird nur das letztere Feld übertragen, da die vorige Eingabe überschrieben wird (entspricht einer Neudefinition dieser Variable)

    Als nächstes erstellen wir seite2.php, an welche die Eingaben (hier: Ihr Name) gesendet wird.

    Der Inhalt der seite2.php sieht dann so aus:

    PHP
    <?phpecho $_POST["vorname"];?>

    Wir erinnern uns an das Input-Feld mit dem Namenvorname auf seite1.html, genau diese Eingabe rufen wir jetzt mit $_POST["vorname"]; ab.
    Klicken wir auf der Formularseite auf Absenden, so wirdseite2.php aufgerufen, dabei werden die Daten übermittelt und von dieser ausgegeben.

    Mit $_POST["vorname"]; können wir also die gesendeten Daten wieder abfragen.
    ["vorname"] gibt den Namen des abgefragten Inputfeldes aus der Formularseite an (hier vorname).

    Diese Abfrage kann auch in einer Variable gespeichert werden, um diese dann später flexibler weiterverarbeiten zu können.

    Der Code dafür würde so aussehen:

    PHP
    <?php$vorname = $_POST["vorname"];echo $vorname;?>

    Soll $_POST["vorname"]; in einer Variable ($vorname) gespeichert werden, darf $_POST["vorname"]; nicht in Anführungszeichen stehen, da dieses sonst als Text interpretiert wird.

    Natürlich können wir damit mehrere Eingaben abrufen. Dazu müssen die Befehle untereinander stehen.

    PHP
    <?php$vorname = $_POST["vorname"];$nachname = $_POST["nachname"];?>


    Neben der POST Methode gibt es auch noch die GETMethode.

    Bei der GET Methode werden die zu übergebene Daten an dieURL angehängt.
    Würden wir unser Formular mit der Methode GET verschicken, so würde die URL am Ende etwa so aussehen.

    seite2.php?vorname=Nils

    Mit dem ? bestimmt der Browser, dass an die URL bestimmte Eingaben angehängt werden.
    Das erste Wort nach dem Fragezeichen (vorname) ist der Feldname des Input-Feldes.
    Alles was nach dem Gleichheitszeichen steht, ist die Eingabe (Nils).

    Möchte man jetzt mehr als ein Feld übertragen, so werden die weiteren Feldnamen mit einem Und-Zeichen (&)angehängt.

    Das sieht dann so aus:

    seite2.php?nachname=Reimers&vorname=Nils

    Werden diese Eingaben abrufen, sieht das so aus:

    PHP
    <?phpecho $_GET["nachname"];echo $_GET["vorname"];?>


    Natürlich können wir diese Daten jeweils auch wieder in einzelne Variablen speichern.

    Ältere Versionen
    Falls ihr eine ältere Version als 4.1.0 benutzt, müsst ihr noch die Langform der Befehle schreiben. Anstatt$_POST["feldname"]; müsst ihr dann$HTTP_POST_VARS["Feldname"]; und aus$_GET["Feldname"]; wird$HTTP_GET_VARS["Feldname"];.
    Die Langformen werden genauso angewendet, wie die Kurzformen.

    Allerdings sollte man, sofern es funktioniert, die Kurzform benutzen.

    POST oder GET?
    Wann benutzt man POST und wann GET ?

    Die Frage ist leicht zu beantworten. Wenn man Eingaben aus einem Formular übergeben möchte, so sollte man immer POST benutzen.
    Warum ?
    Mit GET werden die Eingaben der URL angehängt, dadurch ist die Textlänge eingeschränkt, außerdem kann jeder im Browser-Verlauf an der URL erkennen, was als Daten übermittelt wurde, und bei einer Passworteingabe ist das nicht so schön.

    Vorteil von GET
    GET wird benutzt, wenn man einfache Informationen übergeben möchte. Soll zum Beispiel mit dem Klick auf einen Link eine Auswahl übergeben werden, so benutzt man die Methode GET
    Ein Link in einer aufrufenden Seite könnte dann so aussehen:

    <a href="buch.php?seite=1">Seite 1</a>

    In diesem Beispiel würde die Eingabe 1 übermittelt werden.
    Solche Links werden in PHP zur Programmierung dynamischer Seiten benutzt (z.B. Foren).

    Wozu brauche ich später Variablen?
    Nun haben wir jetzt die ersten Grundlagen über Variablen kennen gelernt.
    Fragt man Einträge aus einer Datenbank oder Datei ab, werden diese zur besseren Übersicht erst in Variablen gespeichert, dann aufbereitet (selektiert, sortiert, oder berechnet) und erst danach mit echo wieder ausgegeben.
    Außerdem werden wir später kennen lernen, wie man Variablen überprüfen kann, also ob z.B. der Name Nils war oder ähnliches. Falls ihr hier Probleme habt, solltet Ihr diesen Abschnitt noch mal lesen.
    Denn alles was jetzt folgt, fragt, überprüft und gibt Variablen aus.

    Schritt 4:


    Bisher brachte PHP noch keinen großen Vorteil gegenüber HTML. Dies wird sich jetzt aber mit der if-Anweisung ändern.

    Mit if können wir überprüfen, ob bestimmte Bedingungen erfüllt bzw. nicht erfüllt sind.

    Das Gerüst für eine if-Anweisung in PHP sieht so aus:

    PHP
    <?phpif(Bedingung){Anweisung}?>

    Die Bedingung, die überprüft werden soll, wird in Klammern direkt nach dem einleitenden if gesetzt. Danach folgt ingeschwungenen Klammern die auszuführende Anweisung, wenn die Bedingung erfüllt (wahr/true) ist.

    Schauen wir uns einmal ein kleines Beispiel an:

    PHP
    <?php$user = "Nils";if($user == "Nils"){echo "Hallo Nils";}?>

    Die IF-Anweisung überprüft, ob die Variable $user als InhaltNils hat. Trifft dies zu, so gibt die Bedingung wahr (true) zurück und als Ausgabe erhalten wir: Hallo Nils.

    Zu beachten ist hier, dass zwei Ist-Gleich Zeichen benutzt werden. Mit nur einem Gleichheitszeichen würde diese if-Anweisung nicht funktionieren, denn dort würde der Variable den Wert Nils zugewiesen werden.
    Außerdem darf kein Semikolon (;) hinter der if-Anweisungstehen.

    Wenn die Variable $user nicht den Inhalt Nils hätte, so würdeif false (falsch) zurückgeben und wir würden keine Ausgabe erhalten.

    Möchten wir aber auch eine Ausgabe erhalten wenn die Variable $user nicht den Inhalt Nils hat, so benötigen wir dieelse-Anweisung.

    Das Grundgerüst sieht dafür so aus:

    PHP
    <?phpif(Bedingung){Anweisung}else{Anweisung}?>

    Das else tritt immer dann ein, wenn wir false (falsch) erhalten.

    Zum besseren Verständnis hier ein kleines Beispiel:

    PHP
    <?php$user = "Klaus";if($user=="Nils"){echo "Hallo Nils";}else{echo "Du bist nicht Nils!";}?>

    Hat die Variable $user den Inhalt Nils, so erhalten wir als Ausgabe Hallo Nils, bei jedem anderen Inhalt erhalten wir als Ausgabe Du bist nicht Nils!.

    Hiermit können wir schon eine einfache, aber dennoch sichere Passwortabfrage erstellen.

    Als erstes benötigen wir wieder ein Formular:

    PHP
    <form action="seite2.php" method="post"><input type="Password" name="passwort"><input type="Submit" value="Absenden"></form>

    In diesem Formular geben wir dann das Passwort ein. Beim Klick auf "Absenden", wird die Seite seite2.php aufgerufen und gleichzeitig an diese das Passwort übergeben.
    - Genau wie es im Abschnitt Variablen unter Variablen übergeben beschrieben wurde.

    seite2.php muss dann so aussehen:

    PHP
    <?php$passwort = $_POST["passwort"];if($passwort=="geheim"){echo "Herzlich Willkommen im internen Bereich";}else{echo "Das Passwort ist leider falsch";}?>

    Mit $passwort = $_POST["passwort"]; weisen wir der Variable den Inhalt des Passwortfeldes im Formular zu.
    Mit der if-Anweisung wird nun abgefragt, ob die Variable$passwort das Wort geheim als Inhalt hat, also ob im Formular das Wort geheim auch eingegeben wurde.

    Bei richtiger Eingabe, kommt man in den internen (Passwortgeschützen) Bereich.
    Eine falsche Eingabe bewirkt die Ausgabe Das Passwort ist leider falsch.


    Wir können natürlich auch if-Anweisungen innerhalb einer if-Anweisung erstellen. (verschachteln)

    Dies sieht dann z.B. so aus:

    PHP
    <?php$vorname = "Nils";$nachname = "Reimers";if($vorname=="Nils"){echo "Hallo Nils ";if($nachname=="Reimers"){echo "Reimers";}}else{echo "Du bist nicht Nils";}?>

    Zuerst wird überprüft, ob die Variable $vorname den InhaltNils hat. Trifft dies zu, so wird Hallo Nils ausgegeben.
    Danach wird innerhalb der if-Anweisung mit einer weiteren if-Anweisung überprüft, ob die Variable $nachname den InhaltReimers hat. Trifft dies ebenfalls zu, wird auch noch Reimersausgegeben.

    Wenn die Variable $vorname nicht den Inhalt Nils hat, so wirdDu bist nicht Nils ausgegeben.
    Es ist dann auch egal, ob $nachname Reimers ist oder nicht.

    Genauso kann eine zweite if-Anweisung auch im else Teil stehen:

    PHP
    <?php$user = "Nils";if($user=="Nils"){echo "Hallo Nils";}else{if($user=="Reimers"){echo "Hallo Herr Reimers";}else{echo "Du bist nicht Nils Reimers";}}?>

    Wenn die Variable $user den Inhalt Nils hat, wird Hallo Nilsausgegeben.

    Hat sie diesen Inhalt nicht, wird überprüft, ob der InhaltReimers ist. Hat sie diesen Inhalt, so wird Hallo Herr Reimersausgegeben.

    Falls die Variable $user weder den Inhalt Nils, noch den InhaltReimers hat, dann wird Du bist nicht Nils Reimers ausgegeben.

    Des weiteren könnten man dies auch per else if lösen. Dies ist eine weitere if-Anweisungen, wenn die vorherige nicht Zutrifft:

    PHP
    <?php$user = "Nils";if($user=="Nils"){echo "Hallo Nils";}else if($user == "Reimers"){echo "Hallo Herr Reimers";}else if($user == "Meier"){echo "Hallo Herr Meier";}else{echo "Du bist weder Herr Reimers noch Herr Meier";}?>

    Man kann auch mit einer if-Anweisung abfragen, ob etwasnicht erfüllt ist.
    Dies erreichen wir mit != (ungleich).

    Ein kleines Beispiel hierfür:

    PHP
    <?php$user = "Nils";if($user!="Nils"){echo "Du bist nicht Nils";}else{echo "Hallo Nils";}?>

    Wenn die Variable $user einen anderen (ungleichen) Inhalt alsNils hat, so wird Du bist nicht Nils ausgegeben.
    Wenn sie aber doch diesen Inhalt (Nils) hat, so wird Hallo Nilsausgegeben.

    Zwar könnte man hierfür auch die Abfrage == (Ist-Gleich) benutzen, aber wenn man überprüfen möchte, ob überhaupt etwas im Formular eingegeben wurde, ist es besser, != zu benutzen.

    Dies würde dann einfach so aussehen:

    PHP
    <?php$user = $_POST["user"];if($user!=""){echo "Herzlich Willkommen $user";}else{echo "Das Feld User wurde nicht ausgefüllt";}?>

    Als erstes fragen wir die übertragenen Daten wieder ab.
    Wenn $user ungleich "" (leer) ist, erhalten wir Herzlich Willkommen $user.
    Wurde das Eingabefeld nicht ausgefüllt, erhalten wir Das Feld User wurde nicht ausgefüllt.

    Bei if-Anweisungen ist unbedingt darauf zu achten, dass allegeschwungenen Klammern wieder geschlossen werden, da sonst das Script nicht funktioniert.


    Schritt 5:

    Oft reicht es nicht aus, nur eine Bedingung zu überprüfen. Wenn man z.B. eine Passwortabfrage macht, möchte man wissen ob der Benutzername und das Passwort richtig sind.

    Deshalb kann man in PHP mehrere Bedingungen miteinander verknüpfen. Natürlich kann man mehrere if-Anweisungen benutzen, aber wenn man z.B. 5 Bedingungen überprüfen möchte, wäre dies doch sehr unübersichtlich.

    Für diesen Zweck gibt es die logischen Operatoren.
    Hiermit können wir beliebig viele Bedingungen verschiedenst miteinander Verknüpfen.

    Eine Passwortabfrage zum Beispiel würde dann so aussehen:

    PHP
    <?php$username = "Nils";$passwort = "php-einfach";if($username=="Nils" AND $passwort=="php-einfach"){echo "Zugriff erlaubt";}?>

    Hier werden $username und $passwort gemeinsam überprüft. Nur wenn beide Eingaben stimmen, wird der Zugriff erlaubt.

    Die Verbindung der beiden Bedingungen erfolgt über den Operator AND (und). Das selbe Ergebnis erzielt man mit &&. Welche Schreibweise man letztendlich verwendet ist egal. Ich bevorzuge AND, da es intuitiver aussieht.

    Es gibt immer wieder Fälle, wo es reicht, dass nur eine Bedingung erfüllt ist.
    Dafür gibt es den Operator OR (oder), manchmal wird er auch als || geschrieben:

    PHP
    <?php$username = "Nils";$passwort = "php-einfach";if($username=="Nils" OR $passwort=="php-einfach"){echo "Zugriff erlaubt";}?>

    Diese IF-Anweisung ist auch dann erfüllt, wenn nur eine der beiden Bedingungen erfüllt ist. Zugegeben für eine Passwortabfrage macht das eher weniger Sinn, aber dazu später mehr.

    Auch wenn bei OR beide Bedingungen erfüllt sind, erhalten wir als Ausgabe Zugriff erlaubt.

    Man könnte eine Passwortabfrage auch für mehrere Personen erstellen, dazu verknüpfen wir die verschiedenen Operatoren einfach:

    PHP
    <?php$username = "Nils";$passwort = "php-einfach";if( ($username=="Nils" AND $passwort=="php-einfach")OR($username=="Paul" AND $passwort=="geheim") ){echo "Zugriff erlaubt";}?>

    Hier hätten nur Nils mit dem Passwort php-einfach oder Paulmit dem Passwort geheim zugriff. Ein Nils der als Passwort z.B.geheim eingibt, hätte keinen Zutritt.

    Es gibt jedoch noch die dritte Variante des logischen Operators, dabei darf nur eine Bedingung wahr sein.

    Diese Variante nennt sich exklusives oder und wird wie folgt geschrieben:

    PHP
    <?php$username = "Nils";$passwort = "php-einfach";if($username=="Reimers" XOR $passwort=="php-einfach"){echo "Zugriff erlaubt";}?>


    Jetzt wird nur dann die Anweisung ausgeführt, wenn die Variable $username den Inhalt Reimers hat, oder die Variable$passwort den Inhalt php-einfach hat. Sind beide Inhalte richtig angeben, erfolgt kein Zugriff.

    Dieses "entweder oder" wird XOR geschrieben.

    Noch mal:
    Bei AND müssen beide Bedingungen erfüllt sein
    Bei OR muss mindestens eine Bedingung erfüllt sein
    Bei XOR darf nur eine Bedingungen erfüllt sein

    Für eine echte Passwortabfrage würde man die Variablen$username und $passwort per Formular eingeben.

    Dazu benötigen wir zuerst wieder ein Formular mit zwei Input-Feldern.

    PHP
    <form action="seite2.php" method="post">Username:<br><input type="Text" name="username"><br>Passwort:<br><input type="Password" name="passwort"><br><input type="Submit" value="Absenden"><br></form>

    In diesem Formular gibt man dann den Username und dasPasswort ein. Klickt man danach auf Absenden, wirdseite2.php aufgerufen und an diese beide Eingaben übergeben.

    seite2.php muss dann so aussehen:

    PHP
    <?php$username = $_POST["username"];$passwort = $_POST["passwort"];if($username=="Nils" AND $passwort=="php-einfach"){echo "Zugriff erlaubt";}else{echo "Zugriff fehlgeschlagen";}?>


    Als erstes Fragen wir die eingegebenen Daten ab.
    Diese Eingaben werden in den Variablen $username und$passwort gespeichert.

    Mit einer if-Anweisung und dem logischen Operator AND wird abgefragt, ob $username den Inhalt Nils und $passwort den Inhalt php-einfach hat.
    Nur wenn beide Eingaben richtig sind, kommen wir in den internen Bereich.


    Schritt 6:

    Als erstes machen wir eine Passwortabfrage, bei der das Passwort verschlüsselt wird.

    Zuerst brauchen wir wieder ein Formular.

    Das sieht ungefähr so aus:

    PHP
    <form action="seite2.php" method="post">Benutzername:<br><input type="Text" name="username"><br><br>Passwort:<br><input type="Password" name="passwort"><input type="Submit" value="Absenden"></form>

    Passwortabfragen sollten immer mit post übermittelt werden, denn wenn es mit get übermitteln wurde, würde jeder später im Verlauf sehen können, welches Passwort man benutzt.

    Jetzt kommen wir zum PHP Teil

    PHP
    <?php$username = $_POST["username"];$passwort = $_POST["passwort"];$pass = md5($passwort);?>

    Als erstes fragen wir die übertragenden Daten ganz einfach wieder ab.

    Mit md5 verschlüsseln wie jetzt das Passwort. Benutzt man dafür md5 so kann dieser Verschlüsselung nicht wieder rückgängig gemacht werden.

    Ein Wort das mit md5 verschlüsselt wurde, sieht dann ca. so aus:
    fd0d9cdefd5d42dfa36c74a449aa8214 (php-einfach)

    Damit wir jetzt eine if-Anweisung machen können, müssen wir zuerst das Passwort in einen md5-String (Text) umwandeln.

    Dafür können wir den
    Kommentar:<br>
    <textarea name="kommentar" cols="30" rows="5">
    </textarea>

    <input type="Submit" value="Absenden">
    </form>[/code]

    In diesem Formular gibt man seine E-Mail Adresse an und ein Kommentar.

    Diese Daten werden an seite2.php geschickt:

    PHP
    <?php$email = $_POST["email"];$kommentar = $_POST["kommentar"];if($email=="" OR $kommentar==""){echo "Bitte füllen Sie alle Felder aus";}else{echo "Ihr Eintrag wurde gespeichert";}?>


    Wie immer fragen wir zuerst die übermittelten Daten ab.
    Mit der if-Anweisung schauen wir, ob beide Felder ausgefüllt wurden, dazu brauchen wir OR.

    Wenn ein oder beide Felder leer sind, erhält der Besucher eine Fehlermeldung.
    Wenn er sie aber ausgefüllt hat, werden seine Eingaben gespeichert.
    Wie das speichern geht, erfahrt ihr später.

    Solch eine if-Anweisung braucht man ziemlich oft, z.B. bei Gästebüchern wird eine solche if-Anweisung fast immer eingebaut.
    Wie bereits versprochen, kann man mit PHP mehrere (unendlich) HTML-Dokumente in einer PHP-Datei speichern.

    Dies geht ganz einfach mit der GET Methode.

    Deswegen braucht unser PHP-Dokument eine GET-Abfrage.

    Die sieht so aus:

    PHP
    <?php$seite = $_GET["seite"];?>

    Damit haben wir jetzt als Eingabefeldnamen seite benutzt. Dieser Wert ist in der Variable $seite gespeichert. Natürlich könnt ihr auch andere Namen benutzen, dann müsst ihr aber später aufpassen.

    Wie wir bereits gelernt haben, werden Daten, die mit GETübermittelt werden, an die URL angehängt. Also brauchen wir kein Formular, um bestimmte Eingaben zu senden, sondern hängen wir diese einfach an die URL dran und drücken dann Enter.

    Danach brauchen wir eine IF-Anweisung, die prüft was eingegeben wurde.

    Diese kann so aussehen:

    PHP
    <?phpif($seite=="index"){echo "Herzlich Willkommen auf der Indexseite";}?>

    Rufen wir dann im Browser diese Datei auf, erhalten wir zuerst eine leere Seite. Hängen wir aber jetzt an die URL ?seite=indexdran, erhalten wir die Ausgabe, die zwischen unserer IF-Anweisung steht.

    Somit können wir jetzt beliebig viele Unterseiten einfügen.

    Das sieht dann ca. so aus:

    PHP
    <?php$seite = $_GET["seite"];if($seite=="index"){echo "Indexseite";}if($seite=="start"){echo "Startseite";}?>


    Rufen wir jetzt unsere URL mit dem Anhang ?seite=index auf, erhalten wir als Ausgabe nur Indexseite, rufen wir allerdings diese Seite mit dem Anhang ?seite=start auf, erhalten wir als Ausgabe nur Startseite.

    Somit können wir viele Unterseiten in einer PHP-Datei speichern.

    Wenn man möchte, das der Browser eine bestimmte Seite aufruft, wenn man nichts an die URL drangehängt, brauchen wirisset. Damit können wir überprüfen, ob eine Variable (z.B.$seite) einen Inhalt besitzt. Falls wir überprüfen möchten, ob eine Variable leer ist, benutzen wir !isset

    Das Ausrufungszeichen ! steht für NOT. Die Funktion isset(); gibt entweder TRUE, sofern die Variable existiert, sonst FALSE. Das NOT davor dreht das Ergebnis um.
    Dies bedeutet, wenn die Variable existiert, wir aber !isset(); schreiben, erhalten wir ein FALSE. Wenn sie nicht existiert, ein TRUE.

    Der Script sieht dann so aus:

    PHP
    <?php$seite = $_GET["seite"];if(!isset($seite)){$seite="index";}if($seite=="index"){echo "Indexseite";}if($seite=="start"){echo "Startseite";}?>

    Wenn wir die Datei ohne Anhang aufrufen, erhalten wir die Ausgabe von ?seite=index.

    Links könnten dann so aussehen:

    PHP
    <a href="seite1.php?seite=index">Indexseite</a><a href="seite1.php?seite=start">Startseite</a>


    Natürlich könnten die Links auch in einer der if-Anweisungenstehen, ca. so:

    PHP
    <?php$seite = $_GET["seite"];if(!isset($seite)){$seite="index";}if($seite=="index"){echo "Indexseite";echo "<a href=\"?seite=start\">Zur Startseite</a>";}if($seite=="start"){echo "Startseite";echo "<a href=\"?seite=index\">Zur Indexseite</a>";}?>


    Formulare können wir auch innerhalb einer Datei verschicken, dafür müssen wir nur bei action den richtigen Anhang eintragen.

    Ungefähr so:

    PHP
    <form action="?seite=start" method="post">


    Wenn das Formular innerhalb eines Dokumentes verschickt werden soll, reicht der Anhang, wenn wir das aber an eine andere Seite schicken möchten, dann müssen wir auch den Dateinamen angeben.

    Wozu braucht man dies?
    Klar könnten wir alles in verschiedenen Dateien speichern, aber hat man z.B. bei einer Registration mehrere Schritte (z.B. 10), dann müsste man 10 Dateien anlegen, mit diesem Prinzip aber nur 1 Datei.


    Schritt 7:


    Bisher sind wir in der Lage, mit Variablen zu arbeiten, und diese zu überprüfen.
    Zwar können wir so schon einen geschützten Bereich programmieren, aber oft möchte man ja bestimmte Werte auch abspeichern. Dies können z.B. Daten aus einem Formular oder ähnliches sein.
    Das abgespeicherte möchte man dann später natürlich auch wieder ausgeben. Für solche Aufgaben verwendet man in PHP Dateien. In Dateien speichert man per PHP seine Werte und kann sie an anderer Stelle wieder auslesen

    Zunächst ist zu beachten, dass das Arbeiten mit Dateien immer in drei Schritten abläuft. Eine Datei wird geöffnet, danach wir der Inhalt in die Datei geschrieben oder aus der Datei gelesen (oder auch beides) und zum Schluss wird sie wieder geschlossen. Das öffnen von einer Datei ist eigentlich recht einfach:

    PHP
    <?php$datei = fopen(Dateiname, Modus);?>

    Der PHP-Befehl fopen öffnet die Datei Dateiname, der Modusbestimmt, was wir mit der Datei machen möchten (lesen bzw. schreiben).
    Außerdem müssen wir darauf achten, ab welcher Zeile PHP anfängt zu lesen (Anfang oder Ende der Datei).
    Auch wichtig ist, ob PHP eine Datei anlegt oder nicht, sofern diese noch nicht existiert. Wenn man mit PHP neue Dateien erstellen möchte, dann sollte man nicht r bzw. r+ benutzen.

    Folgende Modi kann man benutzen:

    ModusFunktionDateizeigerDatei anlegenrLesenAnfangNeinr+Lesen und SchreibenAnfangNeinwSchreibenAnfangJaw+Lesen und SchreibenAnfangJaaSchreibenEndeJaa+Lesen und SchreibenEndeJa

    Wenn w / w+ benutzt wird, musst du darauf achten, dass der Inhalt des Dokuments ohne Nachfrage überschrieben wird.

    Für das Anlegen eines <input type="Submit" value="Absenden">
    </form>[/code]

    Der nächste Schritt ist die while-Schleife.

    Zuerst fragen wird selbstverständlich unseren Zahlenwert ab.

    Bei while-Schleifen arbeitet man meistens mit einem "internen Counter", der zunächst initialisiert wird - in diesem Fall mit dem Wert 0.

    PHP
    <?php$zahl = $_POST['zahl'];$a = 0;?>


    Diese Zahl speichern wir in der Variable $a.
    Wir könnten natürlich auch jede andere Variable benutzen.

    Der Wert entscheidet darüber, ab wann PHP anfangen soll zu zählen, wir könnten auch von -10 zählen lassen.

    Dann brauchen wir unsere while-Schleife.

    PHP
    <?phpwhile($a < $zahl){$a++;echo $a.", ";}?>


    Direkt nach dem einleitenden while wird innerhalb der runden Klammer die Bedingung gestellt. Solange diese Bedingung zutrifft, wird jetzt die Anweisung, der Code innerhalb der geschwungenen Klammern, ausgeführt.

    Zum Anfang erhöhen wir den Wert von $a um eins, denn wir wollen dort als erste Zahl eine 1 stehen haben.
    Wir können natürlich auch am Schluss $a++ schreiben, dann wäre aber die erste Ausgabe eine Null.


    Das erhöhen der Variable $a ist ganz wichtig, sonst würde sich PHP dumm und dämlich zählen, denn die Bedingung wäre dann immer wahr.

    Zwischen den geschwungenen Klammern geben wir die Zahl und ein Komma aus, damit es besser aussieht.

    Der ganze Script sieht dann so aus:

    PHP
    <?php$zahl = $_POST["zahl"];//Eine kleine Überprüfung,//damit keine zu großen Zahlen eingegeben werdenif($zahl > 25){$zahl = 25;}$a = 0;while($a < $zahl){$a++;echo $a.", ";}?>

    for-Schleife
    Neben der while-Schleife gibt es auch noch die for-Schleife. Diese ist etwas komplizierter und mit ihr lässt man nur Werte Hoch- bzw. Runterzählen.

    Wir benutzen wieder das Beispiel mit dem Zählen.

    Der erste Teil bleibt gleich:

    PHP
    <?php$zahl = $_POST["zahl"];if($zahl > 25){$zahl = 25;}?>

    Doch jetzt brauchen wir die for-Schleife.

    PHP
    <?phpfor($a = 0; $a < $zahl; $a++){echo $a;echo ", ";}?>

    Bei der for-Schleife geben wir die Variable $a innerhalb der runden Klammern an.
    Dort geben wir nach dem erstem Semikolon (;) die Bedingung an. Zum Schluss (auch durch ein Semikolon ; getrennt) erhöhen wir den Wert von $a um 1.

    Wir benutzen als Startwert 0, und die Schleife läuft insgesamt $zahl (max. 25) mal durch. Die erste Ausgabe wird eine 0 sein.

    Schleifen braucht man sehr oft, wenn man mit Datenbanken oder Dateien arbeitet.

    Schritt 9:


    Um verschiedene Werte in nur einer Variable zu speichern, verwendet man in PHP ein Array.

    Bisher konnte jede Variable nur einen Wert speichern, in PHP können in einem Array beliebig viele Werte gespeichert werden, auch von unterschiedlichen Typen. So kann ein PHP Array z.B. eine Zeichenkette (String/Text), eine Ganzzahl und eine Zahl mit Kommastellen enthalten und auf jeden dieser Werte kann man separat zugreifen.
    Aber PHP kann noch mehr mit Arrays anstellen.

    Das hört sich jetzt alles recht kompliziert an, ist aber ganz einfach, darum hier ein Beispiel:

    PHP
    <?php$wochentage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");?>

    Einem PHP Array wird ganz normal ein Variablenamen zugeordnet, hier wochentage, allerdings erfolgt die Zuweisung der Daten nicht einfach durch das Gleichheitszeichen, sondern danach kommt noch der Befehl: array();.
    In diesem Befehl sind jetzt die verschiedenen Werte gespeichert, bei uns die ausgeschriebenen Wochentage.

    Das Zugreifen auf solch einen Wert ist auch relativ simpel:

    PHP
    <?phpecho $wochentage[1];?>


    Ausgabe: Montag

    Wir geben zuerst wieder den Variable-Namen (wochentage) an und danach das Element bzw. den Wert, auf das wir zugreifen möchten.
    Ein Array hat dabei die enthaltenen Werte durchnummeriert, und fängt bei 0 an zu zählen.
    Also mit $wochentage[0]; würden wir den Wert Sonntagerhalten, Montag hat die Nummer (bzw. den Index) 1 und so weiter.


    Bei großen Arrays wird es natürlich irgendwann umständlich, zu wissen, welche Nummer/Index zu welchem Wert gehört, darum gibt es assoziative PHP Arrays.
    Das heißt, man kann für einen Wert einen Schlüssel/Key zuweisen, dies kann z.B. eine andere Zeichenkette sein.
    Die Zuweisung erfolgt per: =>

    PHP
    <?php$wochentage = array("so" => "Sonntag","mo" => "Montag","di" => "Dienstag","mi" => "Mittwoch","do" => "Donnerstag","fr" => "Freitag","sa" => "Samstag");?>

    Dies ist wieder ein Array mit unseren Namen der Wochentage. Dabei wurde dem Schlüssel so der Wert Sonntag zugewiesen, dem Schlüssel mo dem Wert Montag.
    Der Vorteil ist, dass man jetzt bequemer auf das Array zugreifen kann:

    PHP
    <?phpecho $wochentage["mo"];?>

    Ausgabe: Montag

    Anstatt jetzt die Nummer/Index des Elementes anzugeben, gibt man hier den Schlüssel für das Element an, also so für Sonntag,mo für Montag und sa für Samstag.

    Selbstverständlich kann man nachträglich auch Werte in einem Array verändern:

    PHP
    <?php$wochentage["mo"] = "Monday";echo $wochentage["mo"];?>


    Ausgabe: Monday

    Das selbe gilt für Arrays mit Nummer/Indexen.


    Ein weiterer Vorteil ist, dass man einem Array neue Werte hinzufügen kann, diese Werte könnten z.B. aus einer Datenbank stammen.
    Das ganze Funktioniert so:

    PHP
    <?php$mitarbeiter = array("Bob","Peter");$mitarbeiter[] = "Lisa";echo $mitarbeiter[2];?>

    Ausgabe: Lisa

    Mit $mitarbeiter[] wird automatisch ein neues Element in unserem Array erstellt, und diesem wird der Wert Lisazugewiesen.

    Wir könnten unser Array sogar so erstellen:

    PHP
    <?php$mitarbeiter = array();$mitarbeiter[] = "Bob";$mitarbeiter[] = "Peter";$mitarbeiter[] = "Lisa";?>


    Hier wird zuerst ein leeres Array erstellt und danach werden die Mitarbeiter hinzugefügt.

    Mit assoziativen PHP Arrays funktioniert dies ähnlich, aber wir müssen den Schlüssel mit angeben:

    PHP
    <?php$mitarbeiter = array("Bob" => "Bob Meier","Peter" => "Peter von Hausen");$mitarbeiter["Lisa"] = "Lisa Müller";echo $mitarbeiter["Lisa"];?>

    Ausgabe: Lisa Müller

    Wenn der Schlüssel schon vergeben wurde, dann wird der Wert für die Schlüssel überschrieben.


    Anzahl der Elemente
    Wenn wir in einem Array dynamisch neue Elemente hinzufügen können, dann ist es sehr wichtig zu wissen, wie viele Elemente das Array überhaupt enthält, dies funktioniert mit:count($names_des_array);:

    PHP
    <?php$mitarbeiter = array("Bob","Peter");echo count($mitarbeiter);?>

    Ausgabe: 2

    Wir erhalten als Ausgabe 2, denn in dem Array sind 2 Mitarbeiter gespeichert, der letzte Index ist allerdings 1, weil bei 0 angefangen wird zu zählen.
    Um den letzten Eintrag auszugeben, müssen wir von dem Wert einfach 1 abziehen.

    Elemente ausgeben
    Zum Ausgeben aller Elemente in einem Array benutzt man gewöhnlich eine Schleife, dies kann eine for oder eine whileSchleife sein:

    PHP
    <?php$mitarbeiter = array("Bob","Peter","Lisa");echo "For-Schleife: <br>";for($i=0; $i < count($mitarbeiter); $i++){echo $mitarbeiter[$i]."<br>";}echo "<br> While-Schleife: <br>";$i = 0;while($i < count($mitarbeiter)){echo $mitarbeiter[$i]."<br>";$i++;}?>

    Beide Varianten funktionieren einwandfrei, aber es gibt noch eine 3. Schleife:

    PHP
    foreach<?php$mitarbeiter = array("Bob","Peter","Lisa");echo "Foreach-Schleife: <br>";foreach($mitarbeiter AS $name){echo $name."<br>";}?>

    Im Schleifenkopf definieren wird, dass die Werte in $namegespeichert werden soll. Unter dieser Variable können wir dann innerhalb der Schleife auf den jeweiligen Namen des Mitarbeiters zugreifen.

    Suchen & Sortieren
    Ein weiteres Feature ist, dass wir ein Array durchsuchen und sortieren können.
    Zuerst die Suchfunktion, dies geht mitin_array($suche,$array);:

    PHP
    <?php$mitarbeiter = array("Bob","Peter","Lisa");if(in_array("Bob",$mitarbeiter)){echo "Der Name Bob ist in dem Array enthalten";}?>

    Hier überprüfen wir, ob Bob in dem Mitarbeiter-Array vorhanden ist, wenn ja, gibt die Funktion true zurück, und ein Text wird ausgegeben (das Bob in dem Array vorhanden ist).

    Das war auch schon das Gröbste zum Suchen, jetzt das Sortieren. Oft herrscht in so einem Array 'Chaos', dass z.B. die Mitarbeiter wild hinzugefügt wurden. Möchte man jetzt eine alphabetische Liste der Mitarbeiter ausgeben, dann muss man das Array zuerst sortieren. PHP bietet dafür viele Möglichkeiten.

    Möchte man die Werte sortieren, verwendet man die Funktionenasort oder arsort, wobei asort eine aufsteigende Reihenfolge (a,b,c,d) liefert und arsort eine absteigende (d,c,b,a).

    Beispiel:

    PHP
    <?php$mitarbeiter = array("Klaus","Arnie","Willi");//Array sortierenasort($mitarbeiter);//Array ausgebenecho "Foreach-Schleife: <br>";foreach($mitarbeiter AS $name){echo $name."<br>";}?>

    Hier wird per asort() das Array in aufsteigender Reihenfolge sortiert und danach mit foreach ausgegeben.

    Um die Schlüssel (mit deren Werte), zu sortieren, verwendet man ksort oder krsort. Beispiel:

    PHP
    <?php$mitarbeiter = array("Zabel" => "Klaus","Meier" => "Arnie","Brand" => "Willi");//Array sortierenksort($mitarbeiter);//Array ausgebenecho "Foreach-Schleife: <br>";foreach($mitarbeiter AS $name){echo $name."<br>";}?>

    Mehrdimensionale Arrays
    In einem Array kann man ein weiteres Array, und in diesem Array wieder ein Array speichern, und so weiter. Solche Arrays nennt man dann mehrdimensionale Arrays.
    Die Dimension gibt dabei an, wie Tief diese Verschachtelung geht. Ein normales Array wäre ein 1-dimensionales Array, wenn jetzt in dem Array ein weiteres Array gespeichert ist, ist dies ein 2-dimensionales Array.

    Dafür hier ein Beispiel:

    PHP
    <?php$mitarbeiter = array(array("Klaus", "Zabel"),array("Arnie", "Meier"),array("Willi", "Brand"));//Daten ausgebenecho "Vorname: ".$mitarbeiter[0][0];echo " Nachname: ".$mitarbeiter[0][1];?>

    Ausgabe: Vorname: Klaus Nachname: Zabel

    Wie wir sehen, gibt man jetzt nicht nur einen Index an, sondern zwei. Der erste Index gibt an, welchen Mitarbeiter wir aus der Liste haben möchte, und der zweite Index ob wir den Vornamen, oder den Nachnamen ausgeben möchten.

    Dies geht natürlich auch mit assoziativen Arrays und der 'anderen' Schreibweise:

    PHP
    <?php$mitarbeiter = array();$mitarbeiter[] = array("Vorname"=>"Klaus","Nachname"=>"Zabel");$mitarbeiter[] = array("Vorname"=>"Arnie","Nachname"=>"Meier");$mitarbeiter[] = array("Vorname"=>"Willi","Nachname"=>"Brand");//Daten ausgebenecho "Vorname: ".$mitarbeiter[0]["Vorname"];echo " Nachname: ".$mitarbeiter[0]["Nachname"];?>

    Da wir jetzt in einem normalem Array ein assoziatives Array (also eins mit Schlüssel) speichern, müssen wir als zweiten Wert auch den Schlüssel für Vor/Nachname angeben.

    Dies geht natürlich auch mit noch mehr Dimensionen, z.B. so:

    PHP
    <?php$mitarbeiter = array();$mitarbeiter["Klaus"]["Vorname"] = "Klaus";$mitarbeiter["Klaus"]["Nachname"] = "Zabel";$mitarbeiter["Klaus"]["Kinder"][] = "Klaus-Junior";$mitarbeiter["Klaus"]["Kinder"][] = "Kind2";//Daten ausgebenecho "Vorname: ".$mitarbeiter["Klaus"]["Vorname"];echo " Nachname: ".$mitarbeiter["Klaus"]["Nachname"];echo "<br> Er hat ";echo count($mitarbeiter["Klaus"]["Kinder"])." Kinder";//Ausgabe von Kind1://$mitarbeiter["Klaus"]["Kinder"][0];echo "<br> Kinder: <br>";foreach($mitarbeiter["Klaus"]["Kinder"] AS $name){echo $name."<br>";}?>

    Dies ist schon etwas schwerer zu verstehen, aber wenn man es verstanden hat, sollte es eigentlich keine weiteren Fragen zu Arrays geben.

    Also zuerst haben wir wieder unser Array mit dem MitarbeiterKlaus. Dabei benutzen wir diesmal gleich ein assoziatives Array.
    Für Klaus wurde jetzt der Vorname und der Nachname gespeichert, dies sollte ja noch bekannt sein.
    Unter dem Schlüssel Kinder fügen wir jetzt ein weiteres Array hinzu, wobei jedes Element dieses Arrays den Namen eines Kindes von ihm enthält.
    Dieses Array mit den Kindernamen können wir ganz normal per foreach ausgeben.


    Das war's auch schon was man über Arrays wissen muss.

    Schritt 10:


    Jetzt lernen wir, wie wir mit PHP eine Datei komplett auslesen können.

    Dafür gibt es in PHP zwei Möglichkeiten, die erste Möglichkeit ist es, die Datei zeilenweise in ein Array einzulesen.

    Die erste Möglichkeit ist zu überprüfen, ob der Dateizeiger am Ende der Datei ist. Sobald der Dateizeiger am Ende der Datei ist, hört der Script auf zu lesen.

    Dies geht so:

    PHP
    <?php$userdatei = fopen("datei.txt","r");while(!feof($userdatei)){$zeile = fgets($userdatei,1024);echo $zeile;}fclose($userdatei);?>

    Zuerst öffnen wir die Datei datei.txt mit dem Lesemodus r.

    Die while-Schleife läuft solange bis, der Dateizeiger am Ende der Datei steht. Dies überprüfen wir mit !feof.
    Danach lesen wir einfach die nächsten 1024 Zeichen aus der Datei aus und geben diese aus.
    Man kann natürlich auch einen anderen Wert benutzen, aber man sollte nicht so kleine Werte benutzen, denn wenn ihr dort z.B. 2 eingebt, und eure Datei 1000 Zeichen hat, so muss die Schleife 500 mal durchlaufen. Dies dauert natürlich viel länger, als wenn PHP auf einmal z.B. 1024 Zeichen liest.
    Ihr könnt auch größere Werte benutzen, z.B. 5000.

    Wenn der Dateizeiger am Ende angekommen ist, ist diewhile-Schleife beendet und die Datei wird wieder geschlossen.

    Die zweite Möglichkeit ist deutlich leichter, und zwar benutzt man dann den Befehl file:

    PHP
    <?php$datei = file("datei.txt");?>

    Danach können wir den Inhalt des Arrays wieder mit einer geeigneten Schleife ausgeben. Entweder mit einer while-Schleife, for-Schleife oder auch mit foreach.

    Wir können den Inhalt jetzt so wie ein Array behandeln, also nach Werten suchen (in_array), diese Werte sortieren oder auch Werte hinzufügen.

    PHP
    <?php$datei = file("datei.txt");foreach($datei AS $meine_datei){echo $meine_datei."<br>";}?>


    Ich würde die Funktion file() empfehlen.

    Wir haben auch die Möglichkeit per implode() ein Array anhand eines Trennzeichen zu einem String/Text zusammenzufügen:

    PHP
    <?php$datei = implode("",file("datei.txt"));echo $datei;?>

    Dabei wird als Trennzeichen "" (leer) benutzt. Man kann sich dieses aneinander hängen so vorstellen: Zuerst wird das erste Arrayelement ($array[0]) in der Variable gespeichert, dann folgt das Trennzeichen, danach kommt dann das zweite Arrayelement und dann wieder ein Trennzeichen und so weiter.

    Möchte man z.B. dass jede Zeile in der Datei auch eine neue Zeile im Browser ist, so wird als Trennzeichen ein <br> benutzt:

    PHP
    <?php$datei = implode("<br>",file("datei.txt"));echo $datei;?>

    Explode
    Die explode Funktion ist sehr wichtig, wenn man mit Dateien arbeitet.
    explode trennt einen Text an bestimmten Stellen (diese werden vom Programmierer bestimmt) und speichert die Textabschnitte in einem Array. So können wir das Array wieder speziell Abfragen.

    Diese Funktion bringt uns viele Vorteile, so können wir z.B. einen Login-Script basteln, das den Benutzername und das Passwort in einer externen Datei speichert.
    So können wir aber auch Texte viel leichter formatieren, z.B. die aus einem Gästebuch-Script.
    Möchte man später das Design des Gästebuches verändern, so muss man nicht den ganzen Inhalt der Datei verändern (in der die Einträge gespeichert sind), sondern man muss nur ein paar Zeilen im PHP-Code verändern.

    Die Funktion kann man sowohl bei Texten, als auch bei Inhalten von gelesenen Dateien benutzen.

    PHP
    <?php$zeile = "24.12.2006|Weihnachten|Frohes Fest";$zerlegen = explode("|", $zeile);echo "<b>$zerlegen[0]</b>, <i>$zerlegen[1]</i><u>$zerlegen[2]</u>";?>

    Als Ausgabe erhalten wir folgendes Erhalten:
    24.12.2006, Weihnachten Frohes Fest

    Wir schreiben unseren Text in die Variable $zeile und trennen dann die einzelnen Abschnitte mit | (Alt Gr + <).

    Danach benutzen wir die Funktion explode, diese trennt unseren Text überall, wo ein | steht. Wir könnten auch andere Zeichen benutzen, aber man sollte immer Zeichen benutzen, die man normalerweise nie für einen Text benutzen. (Also kein . (Punkt) nehmen o.ä.).

    Danach geben wir mir echo den ersten Wert des Arrays aus (24.12.2006), danach den zweiten Wert (Weihnachten) und zum Schluss den dritten Wert (Frohes Fest).

    Wir Ihr wisst, fangen Arrays immer bei 0 an zu nummerieren.


    So können wir alle gespeicherten Werte unabhängig voneinander bearbeiten.
    Wenn wir dann mit implode das bearbeitete Array zusammenführen, können wir sehr leicht veränderte Textdateien abspeichern.


    Dieses Verfahren benutzt man besonders oft, wenn man mit Textdateien arbeitet.
    Denn würde man in die Textdatei nicht die reine Information, also nur die Eingaben des Benutzers speichern, sondern auch noch HTML Tags, so wäre das Neu design der Ausgabe extrem schwierig. Und wenn man z.B. die eingegebene Emailadresse vor der Ausgabe noch einmal überprüfen möchte, ist dies fast unmöglich.


    Hier ein Beispiel:
    Wir erstellen einen kleinen Shoutbox, aber nur den Teil, wie wir den Text wieder ausgeben.


    Zuerst legen wir eine neue Datei an (text.txt).


    Dort schreiben wir folgendes rein:PHP-Einfach|Wie geht es euch?
    Andavos|Super Site
    Peter|Hier kann man echt viel lernen


    Den Text könnt ihr euch selber aussuchen, aber achtet darauf das zwischen dem Namen und dem Text ein | (Alt Gr + <) steht.


    Jetzt wollen wir das mal wieder ausgeben.


    PHP
    <?php$datei = file("text.txt");foreach($datei AS $ausgabe){$zerlegen = explode("|", $ausgabe);echo "Von <b>$zerlegen[0]</b><br>$zerlegen[1]<br><br>";}?>


    Da wir einen Zeilenumbruch als Trennzeichen der einzelnen Einträge benutzt haben, empfiehlt es sich hier, diese Datei per file() einzulesen.
    Danach kommt eine foreach-Schleife. Jede Zeile aus der Datei wurde ja als eigenes Arrayelement gespeichert, und mit der foreach-Schleife gehen wir diese nacheinander durch.


    Dabei haben wir das aktuelle Arrayelement per AS in die Variable $ausgabe gespeichert. Mit explode trennen wir die einzelnen Abschnitte voneinander, anhand des Trennzeichen| und speichern dies in dem Array $zerlegen


    Danach geben wir mit echo den Inhalt der Datei aus.


    Die Ausgabe würde so aussehen:
    Wie geht es euch?


    Von Andavos
    Super Site


    Von Peter Pan
    Hier kann man echt viel lernen


    Man kann natürlich auch eine for- oder while-Schleifebenutzten, dies würde dann so aussehen:

    PHP
    <?php$datei = file("counter.txt");for($a = 0; $a < count($datei); $a++){$zerlegen = explode("|", $datei[$a]);echo "Von <b>$zerlegen[0]</b><br>$zerlegen[1]<br><br>";}echo "<br><br>Und jetzt die while-Schleife";$datei = file("counter.txt");$a = 0;while($a < count($datei)){$zerlegen = explode("|", $datei[$a]);echo "Von <b>$zerlegen[0]</b><br>$zerlegen[1]<br><br>";$a++;}?>


    Mit dieser Funktion können wir schon komplexe Scripts erstellen, die nur Textdateien benötigen, darunter gehören auch recht sichere Login-Systeme.

    Schritt 11:


    Oft ist es interessant zu wissen, wann etwas gespeichert wurde, deswegen unterstützt PHP auch Datums- und Uhrzeitangaben.

    Das Datum und die Zeit werden von der Server Uhr abgelesen und können somit nicht von dem Anwender manipuliert werden, allerdings sollte die Server Uhr dann auch richtig gehen.

    In PHP ermittelt man die Uhrzeit zuerst mit einem UNIX-Timestamp. Dieser beinhaltet alle Sekunden seit dem 1.1.1970 um 0:00 Uhr. Dadurch entsteht so ein Wert: 1366636068

    Mit diesem Wert können wir noch nicht viel Anfangen, aber PHP darum um so mehr.

    Aber zuerst brauchen wir den Timestamp, das geht so:

    PHP
    <?php$timestamp = time();?>

    Mit dem Befehl time() ermitteln wir den aktuellen Timestamp und dieser wird in der Variable $timestamp gespeichert.

    Jetzt gibt es die Funktion date(format, timestamp)

    Um jetzt ein Datum auszugeben, wenden wir den Befehl datemal an:

    PHP
    <?php$timestamp = time();$datum = date("d.m.Y - H:i", $timestamp);echo $datum;?>

    Das Ergebnis sieht so aus:
    22.04.2013 - 15:07 Hier sind ein paar Formate die Ihr benutzen könnt.

    FormatFunktionBeispieldTag des Monats, zweistellig04, 15jTag des Monats5, 23mNummer des Monats, zweistellig05, 12nNummer des Monats4, 11yJahr, zweistellig98, 05YJahr, vierstellig1998, 2005HStunden im 24-Stunden-Format, zweistellig04, 18GStunden im 24-Stunden-Format4, 14iMinuten, zweistellig04, 32sSekunden, zweistellig02, 55wWochentag in Zahlenwert1, 5

    Das sind die wichtigsten Formate, aber es gibt noch weitere Formate, die man aber eher selten benötigt.

    Die Zeichen zwischen den Buchstaben (d.m.Y) dienen zur Trennung der Werte (Tag.Monat.Jahr), man kann diese auch weglassen bzw. ändern.

    Ihr könntet das Datum auch so ermitteln:

    PHP
    <?php$datum = date("d.m.Y - H:i");echo $datum;?>

    Dabei wird immer vom aktuellen Timestamp ausgegangen, man kann aber auch den Timestamp in einer Datei, Variable bzw. in einer Datenbank abspeichern.
    Diesen kann man später abfragen und dann ausgeben.

    Wann wurde das geschrieben?
    Manchmal möchte man wissen, vor wie vielen Minuten, Stunden oder auch Tagen etwas geschrieben wurde.

    Man könnte jetzt denken, dies würde so gehen, aber das istfalsch:

    PHP
    <?php$timestamp = "120";$test = date("i", $timestamp);echo $test;?>

    Hier bekommen wir als Ausgabe 02, weil 120 Sekunden 2 Minuten sind. Aber gebt dort anstatt eine 120 eine 10900ein.
    Das wären dann natürlich viel mehr als 2 Minuten (181 Min.), aber als Ausgabe erhalten wir 01.
    Das kommt, weil PHP immer die Minuten für eine bestimmte Uhrzeit angibt, und das ist natürlich nicht richtig.

    Deswegen brauchen wir für so etwas Mathe.

    Wie wir wissen, hat 1 Minute 60 Sekunden, also teilen wir die Sekunden einfach durch 60.

    PHP
    <?php$timestamp = "120";echo round($timestamp / 60);?>

    Mit round lassen wir den Wert auf, bzw. abrunden.
    Möchtet Ihr den Wert immer abrunden, so benutzt anstattround einfach floor.

    Heute ist Montag
    Manchmal möchte man ausgeben: Heute ist Montag.

    PHP selber kann nur die Wochentage in der englischen Schreibweise ausgeben, aber wir möchten ja die deutsche Schreibweise benutzen.

    Deswegen erstellen wir als erstes ein Array, indem wir die ganzen Wochentagsnamen speichern:

    PHP
    <?php$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");?>

    Um jetzt den richtigen Tag auszugeben, verwenden wir so eine Ausgabe:

    PHP
    $tage[Nummer]

    Um die Nummer des Tages zu bekommen, benutzen wir wieder die Date-Funktion

    PHP
    <?php$tag = date("w");?>

    Das Format w gibt uns den Wochentag zurück.
    Ihr könnt dort natürlich auch den Timestamp zu einem bestimmten Zeitpunkt angeben.
    Jetzt geben wir das einfach aus:

    PHP
    <?phpecho $tage[$tag]?>


    So kann man auch Monatsnamen ausgeben lassen, allerdings fängt ein Array bei 0 an zu Nummerieren, aber es gibt keinen Monat 0.
    Darum müssen wir den Werten des Array die Monatszahl zuordnen:

    PHP
    <?php$monate = array(1=>"Januar",2=>"Februar",3=>"März",4=>"April",5=>"Mai",6=>"Juni",7=>"Juli",8=>"August",9=>"September",10=>"Oktober",11=>"November",12=>"Dezember");?>

    Danach fragen wir die Zahl des Monats ab:

    PHP
    <?php$monat = date("n");?>

    Dies geht mit dem Format n, zum Schluss lassen wir das wieder wie oben ausgeben:

    PHP
    <?phpecho $monate[$monat];?>

    Die Ausgabe wäre: April

    Ich Hoffe euch hat das Tutorial gefallen,

    Quelle: PHP-Einfach.de - PHP lernen leicht gemacht

    MFG,
    DasGame.  :)

    Einmal editiert, zuletzt von DasGame. (22. April 2013 um 15:40)

  • Mein Überschrift sag schon alles. :)
    Gibt es nicht leichteres?
    Es wäre sehr cool.

    Liebe Grüße,
    xVacati0n.  :thumbup:

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Hotels Username: Lawn
    Wohnort: Deutschland
    Skype: xVacati0n.
    Projekt: Zurzeit keine
    Email: xresponses@web.de
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬


  • Boar immer diese langen Texten!
    Es wäre sehr cool, wenn es kürzer und leichter wäre.

    Liebe Grüße,
    xVacati0n.  :thumbup:

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Hotels Username: Lawn
    Wohnort: Deutschland
    Skype: xVacati0n.
    Projekt: Zurzeit keine
    Email: xresponses@web.de
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬


  • Boar immer diese langen Texten!
    Es wäre sehr cool, wenn es kürzer und leichter wäre.

    Liebe Grüße,
    xVacati0n.  :thumbup:


    Es ist halt Arbeit etwas zu lernen..
    Du musst es ja nicht durchlesen. => Erst die Arbeit denn das Vergnügen. => Erst lesen dann die Kenntnisse.

  • Danke das du es hier gepostet hast, dennoch ist es auf der Website eindeutig übersichtlicher da das ganze dort in Kategorien eingeordnet ist.
    Zudem sollte man PHP langsamer, dafür aber ordentlicher lernen. Zum Beispiel Videos anschauen und das gezeigte einarbeiten, bzw auswendig nachmachen.

    ?>

  • Boar immer diese langen Texten!
    Es wäre sehr cool, wenn es kürzer und leichter wäre.

    Liebe Grüße,
    xVacati0n. :thumbup:


    PHP ist eine Sprache mit vielen Befehlen und Funktionen deshalb wirst du kein Tutorial finden das keinen voll geschrieben Text enthaltet.

    B2T:

    Sucht euch besser Seiten auf als diesen unübersichtlichen und kopierten Text.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!