Ergebnis 1 bis 7 von 7

Thema: PHP für Anfänger

  1. #1

    PHP für Anfänger

    Da es hier auch schon ein Tut für HTML gibt dacht ich mir, dass man das gleiche ja auch für PHP machen kann. Also:

    Bemerkungen
    Ich werde in diesem Tut manchmal Links als Fußnoten missbrauchen. Solche Links werden mit einem Gradzeichen (°) markiert. Fahrt über den Link, damit in der Statuszeile der Hinweis angezeigt wird, z.B.: Test°

    Voraussetzungen:
    Ich gehe davon aus, dass ihr euch etwas in HTML auskennt, eure Kenntnisse sollten vielleicht ein bisschen über dieses Tut hinausgehen.
    Außerdem solltet ihr wissen, was eine Variable ist.
    Zum Testen wäre ein PHP-Fähiger Webspace sinnvoll. PHP-Freewebspace wird u.a. von Lycos Tripod angeboten.

    Was ist PHP?
    PHP ist im Prinzip nichts anderes als eine Scriptsprache, um HTML-Seiten zu erstellen. Eine Seite mit der Endung .php wird vom Server interpretiert, bevor sie zum Browser gesendet wird, der Browser kriegt also gar nicht mit, dass es sich um eine php-Seite handelt.

    Erste Schritte
    Eine Seite, die in PHP geschrieben ist, ist sehr ähnlich zu einer HTML-Seite aufgebaut, hat aber die Endung *.php. Der Server interpretiert nur das, was in <?php ?>-Tags steht. Der Rest wird vollkommen unverändert übernommen. Also:
    PHP-Code:
    <!--Hier ist HTML--!>
    <?php
     
    // Das ist PHP
    ?>
    <--Hier ist wieder HTML-->
    Innerhalb der PHP-Tags kann Text ausgegeben werden, indem man
    PHP-Code:
    <?php
    print("Hallo <b>Welt</b>!");
    ?>
    schreibt.
    In diesem Beispiel würde
    Hallo Welt!
    ausgegben werden.
    Man kann also auch normale HTML-Tags ausgeben, die dann vom Browser ausgewertet werden.
    Zwischen zwei <?php ?> kann ganz normaler HTML-Code geschrieben werden. Der PHP-Code wird in diesem Fall an der Stelle fortgesetzt, an der er unterbrochen wurde.

    PHP-Kommandos
    Jeder PHP-Befehl endet mit einem Semikolon, was wohl C-Programmierern bekannt vorkommen wird (Das meiste in PHP ist ählich zu C). Wichtig ist nur, dass nicht das Zeilenende den Befehl abschließt, sondern das Semikolon. Ein Befehl kann also über mehrere Zeilen gehen, es können aber auch zwei Befehle in einer Zeile vorkommen.
    Ein Befehl kann entweder ein Funktionsaufruf, eine Variablenzuweisung oder eine Mischung aus beidem sein. Eine wichtige eingebaute Funktion ist z.B. print(). Die Syntax eines Funktionsaufrufes schaut so aus:
    [FONT=courier new]funktionsname(Parameter1 [, Parameter2 [, Parameter3 [, ...]]]);[/font]
    Die print()-Funktion nimmt nur einen Parameter an, nämlich den String, der ausgegeben werden soll (Strings sind Zeichenketten und werden in Anführungszeichen ("") angegeben, damit PHP auch weiß, dass es sich um einen String handelt. Dazu aber später).
    Befehle werden von oben nach unten durchgearbeitet.

    Variablen
    In PHP sind alle Variablen Variants, d. h. sie können Ganze Zahlen, Floating-Point-Zahlen oder Zeichenketten sein.
    Variablen müssen nicht definiert werden, wenn ein noch nicht verwendeter Variablenname im Quelltext auftaucht wird eine neue Variable dieses Namens erstellt und ihr der Wert 0 bzw. ""° zugewiesen.
    Variablennamen müssen mit dem $-Zeichen beginnen und dürfen Groß-und Kleinbuchstaben sowie den Unterstrich (_) enthalten.
    Variablen sind z.B.
    [font="courier new"]$foo
    $test123
    $dummheit_MAX[/font]

    keine Variablen sind:
    [FONT=courier new]test //° diese Variable fängt nicht mit $ an.
    $asdf äölk //Diese Variable enthält ein Leerzeichen.
    $#*@! //Diese Variable enthält Sonderzeichen[/font]

    Variablen in PHP sin case sensitive, d. h. dass die GOSS/kleinschreibung eine Rolle spielt.
    [FONT=courier new]$hallo[/font] ist also etwas anderen als [FONT=courier new]$Hallo[/font], [FONT=courier new]$HALLO[/font] oder [FONT=courier new]$hAlLo[/font].

    Um einer Variable einen Wert zuzuweisen kann der =-Operator° verwendet werden:
    [FONT=courier new]$foo = 27;[/font]
    oder
    [FONT=courier new]$zeug = 234.123432;[/font]
    oder
    [FONT=courier new]$text = "Hallo";[/font]

    Man kann auch sehr leicht mit Variablen rechnen:
    [FONT=courier new]$baz = 27-15;[/font]
    In diesem Fall erhält die Variable $baz den Wert 13.
    [FONT=courier new]$test = $foo * 2;[/font]
    Schon etwas komplizierter. In diesem Fall erhält $test den doppelten Wert von $foo.

    Man kann in PHP die Operatoren +,-,*,/ und verwenden.
    Es ist zu beachten, dass die Regel Punkt vor Strich gilt,
    [FONT=courier new]$foo = 2+2*3;[/font]
    weist $foo also 8 zu, nicht 12. Um $foo den Wert 12 zuzuweisen kann man Klammern verwenden:
    [FONT=courier new]$foo = (2+2)*3;[/font]

    Es gibt noch eine Reihe besonderer Operatoren:
    [FONT=courier new]$foo++; //Erhöht den Wert von $foo um 1, entspricht also $foo = $foo + 1;.
    $foo--; //Verringert den Wert von $foo um 1.
    $foo += 5; //Erhöht den Wert von $foo um 5, entspricht also $foo = $foo + 5;.
    $foo -= 7; //Verringert den Wert von $foo um 7.
    $foo *= 9; //Entspricht $foo = $foo * 9;.
    $foo /= 6; //Entspricht $foo = $foo / 6;.
    $foo %= 4; //Entspricht $foo = $foo % 4;.[/font]
    Diese Kürzel ersparen einem einen Haufen Tipparbeit.

    Diese Kürzel kann man auch mitten in Ausdrücken° verwenden.
    [FONT=courier new]$baz = 7;
    $foo = ($baz += 3) + 10;[/font]
    weist $baz den Wert 10 und $foo den Wert 20 zu.

    Teste, ob du alles verstanden hast
    Was gibt dieser Code aus?
    PHP-Code:
    <?php
    $Ergebnis 
    7;
    $foo = ($ergbnis++) - 3;
    $x $foo 12;
    $x %= 3;
    $Ergebnis += (x);
    print(
    $Ergebnis);
    ?>


    Operationen mit Zeichenketten
    Wie schon im lezten Abschnitt angesprochen kann eine Variable auch Strings° annehmen. In PHP gibt es zwei Möglichkeiten, Strings einzusetzen. Man kann sie entweder in einfache ('') oder in doppelte ("") Anführungszeichen setzen. Um in einfachen Zeichenketten das ' anzuzeigen muss ein Backslash (\) davor gesetzt werden, also z.B. 'Bei \'Donaudampfschiffahrtelektromechanikerausbildungszentren\' handelt es sich um ein langes Wort.'.
    Wenn der Backslash selber dargestellt werden soll muss folgendes geschrieben werden: 'c:\\ ist unter Windows die erste Festplatte'.
    Die Möglichkeit, die doppelten Anführungszeichen zu benutzen sollte man nur wählen, wenn man einen Zeilenumbruch einfügen will: "1. Zeile\n2.Zeile". \n markiert hier den Zeilenumbruch. Bei dieser Methode muss " durch \", \ durch \\ und $ durch \$ ersetzt werden.
    Man sollte nach Möglichkeit immer die einfachen Anführungszeichen verwenden, da diese sehr viel schneller verarbeitet werden als die doppelten.

    Strings können auch aneinandergehängt werden, indem man sie durch Punkte trennt:
    [FONT=courier new]$string1 = $string2 . $string3;[/font]

    Man kann auch Zahlen mit Strings verketten:
    [FONT=courier new]$ausgabetext = 'Die Summe von 5 und 4 ist ' . (5 + 4) . '.';[/font]
    Man beachte das Leerzeichen zwischen "ist" und "'". Es dient dazu, dass die 9 nicht direkt an das "ist" drangeklebt wird.
    Der Inhalt von $ausgabetext lautet dann "Die Summe von 5 und 4 ist 9.".

    Man kann auch schreiben:
    [FONT=courier new]print('Die Summe von 5 und 4 ist ' . (5 + 4) . '.');[/font]
    Auf diese Weise wird der Text direkt ausgegeben, ohne erst in einer Variable gespeichert zu werden:
    Die Summe von 5 und 4 ist 9.

    Codestrukturen
    Bisher wurde unser PHP-Code immer so geschrieben, dass er von oben nach unten komplett durchgefürt wurde. Das ist aber in den meisten Fällen nicht das Ziel, z.B, wenn ein Username geprüft werden soll. Deshalb bietet PHP mehrere Möglichkeiten, den Ablauf des Codes zu beeinflussen:

    a)Abbrechen des Programmlaufs
    Wenn der Programmlauf an einer bestimmten Stelle abgebrochen werden soll kann dieser Befehl verwendet werden:
    [FONT=courier new]return;[/font]
    Alles, was nach diesem Befehl kommt wird ignoriert, auch HTML-Code. Es sollte sichergestellt werden, dass sämtliche HTML-Tags geschlossen werden, bevor dieser Befehl aufgerufen wird, da sonst eine fehlerhafte Seite entstehen kann.

    b)Die if-Abfrage
    eine If-Abfrage kontrolliert, ob eine bestimmte Bedingung erfüllt ist.
    PHP-Code:
    <?php
    if ($alter 70)
     print(
    'Sie sind zu alt für diese Seite. Progrannieren Sie ihre eigene.');
    ?>
    Beachte, dass hinter der 2. Zeile kein Semikolon° ist. If ist auch kein Befehl, sondern eine Abfrage.

    Der print-Befehl in der 3. Zeile wird nur ausgeführt, falls $alter > 99 ist.
    Außer dem -Zeichen gibt es noch:
    [FONT=courier new]< : Kleiner als
    <=: Kleiner oder gleich
    >=: Größer oder gleich
    ==: Gleich (Vorsicht! immmer == schreiben, da sonst dem linken Wert der rechte zugewiesen wird)
    !=: ungleich[/font]

    Zudem gibt es noch den !- oder Nicht-Operator.
    [FONT=courier new]!($x > $y) entspricht ($x <= $y)[/font]

    Im oben genannten Code wird nur eine Codezeile von der Bedingung abhängig gemacht. Was aber, wenn mehrere Zeilen ausgeführt werden sollen. Was aber, wenn mehr als ein Befehl von der Bedingung abhängig gemacht werden soll? Natürlich könnte man schreiben:
    PHP-Code:
    <?php
    if ($alter 70)
     print(
    'Sie sind zu alt für diese Seite. Progrannieren Sie ihre eigene.<br>');
    if (
    $alter 70)
     
    $zu_alt $alter 70;
    if (
    $alter 70)
     print(
    'Sie hätten ' $zu_alt ' Jahre früher kommen müssen.');
    ?>
    Das hätte aber viele Nachteile:
    • Es wäre viel Schreibarbeit
    • Es wäre extrem unübersichtlich
    • Es würde mehr Rechenleistung vom Server verbrauchen als nötig
    • Was wäre, wenn sich $alter wärend des Programmlaufs ändern würde?
    Deshalb gibt es die Möglichkeit, eine Folge von Befehlen in geschweifte Klammern ({}) zu schreiben, sodass sie wie ein Befehl behandelt werden:
    PHP-Code:
    <?php
    if ($alter 70)
    {
     print(
    'Sie sind zu alt für diese Seite. Progrannieren Sie ihre eigene.<br>');
     
    $zu_alt $alter 70;
     print(
    'Sie hätten ' $zu_alt ' Jahre früher kommen müssen.');
    }
    ?>
    Es gibt auch die Möglichkeit anzugeben, was passieren soll, wenn die Bedingung nicht erfüllt ist:
    PHP-Code:
    <?php
    if ($alter 70)
    {
     print(
    'Sie sind zu alt für diese Seite. Progrannieren Sie ihre eigene.<br>');
     
    $zu_alt $alter 70;
     print(
    'Sie hätten ' $zu_alt ' Jahre früher kommen müssen.');
    }
    else
    {
     print(
    'Gratulation! Sie dürfen diese Seite betrachten.<br>');
     
    $jung_genug 70 $alter;
     print(
    'Sie haben noch ' $jung_genug ' Jahre, um sich diese Seite anzuschauen!');
    }
    ?>
    Der Block nach dem else wird nur ausgeführt, falls die Bedingung nicht zutrifft.

    c)Schleifen mit while
    Falls ein bestimmter Code mehrfach ausgeführt werden soll kann man eine while-Schleife verwenden:
    PHP-Code:
    <?php
    $x 
    0;
    while(
    $x 5)
    {
     print(
    $x "<br>\n");
     
    $x++;
    }
    ?>
    Diese Schleife wird so lange durchgeführt wie $x kleiner als 5 ist, also in diesem Fall 5 mal:
    1. $x = 0, die Bedingung ($x < 5) ist erfüllt. 0 wird ausgegeben und $x wird auf 1 erhöht.
    2. $x = 1, die Bedingung ($x < 5) ist erfüllt. 1 wird ausgegeben und $x wird auf 2 erhöht.
    3. $x = 2, die Bedingung ($x < 5) ist erfüllt. 2 wird ausgegeben und $x wird auf 3 erhöht.
    4. $x = 3, die Bedingung ($x < 5) ist erfüllt. 3 wird ausgegeben und $x wird auf 4 erhöht.
    5. $x = 4, die Bedingung ($x < 5) ist erfüllt. 4 wird ausgegeben und $x wird auf 5 erhöht.

    --. $x = 5, die Bedingung ($x < 5) ist nicht erfüllt. Die Schleife wird verlassen.
    Eine Variante dieser Schleife ist
    PHP-Code:
    <?php
    $x 
    5//Hier ist eine Änderung
    do
    {
     print(
    $x "<br>\n");
     
    $x++;
    }
    while(
    $x 5)
    ?>
    Der einzige Unterschied besteht darin, dass die erste Schleife 0 oder meherere Male durchgeführt wird und diese mindestens einmal.

    d)for-Schleifen
    For-Schleifen sind im Prinzip umgeformte while-Schleifen.[php]<?php
    for($x = 0; x < 5; x++)
    print($x);
    ?>ist das gleiche wie
    PHP-Code:
    <?php
    $x 
    0;
    while(
    $x 5)
    {
     print(
    $x "<br>\n");
     
    $x++;
    }
    ?>
    Grundsätzlich gilt also:
    [FONT=courier new]for(/*Aktion vor der Schleife*/; /*Bedingung für den erneuten Durchlauf*/; /*Aktion nach jedem Durchlauf*/)
    //Befehl(e)
    //Kommentare können auch innerhalb einer Zeile stehen, wenn sie zwischen /* und */ stehen.
    [/font]




    Das wars vorerst. Edits werden folgen, ich werde in nächster Zeit mindestens noch folgende Themen hinzufügen:
    • Funktionen
    • Auswertung von Formularen
    • Schreiben/Lesen in/aus Dateien
    • Tipps und Tricks
    • Eigenes Gästebuch in PHP
    • Wichtige/interessante Funktionen
    • Andere Wünsche, Vorschläge und Kritik sind selbstverständlich willkommen.


    Version 1.0, letzter Edit°: Noch nicht

    Geändert von wrtlprnft (28.05.2004 um 20:10 Uhr)

  2. #2
    "(c)2004 by wrtlprnft"

    Mach das weg. Wenn du kein WAHRES Copyright hast, könntest du angezeigt werden. Bei mir war es so
    Für Copyrights musst du Geld bezahlen - viele wissen das nicht -

    Ist nur gut gemeint

  3. #3
    Progrannieren?
    Soll der opa seine Nieren neu programmieren oder woran hast du daran gedacht
    Wen nicht verat mir mal was Progrannieren ist

  4. #4
    fehlt hier

    Zitat Zitat
    PHP-Code:
    <?php 
    $Ergebnis 
    7
    $foo = ($ergbnis++) - 3
    $x foo 12
    $x %= 3
    $Ergebnis += (x); 
    print(
    $Ergebnis); 
    ?>
    in der 4ten Zeile ein $ für die foo variable?

  5. #5
    §hiall

    Hier ein Link die php auf Ihrem Rechner daheim zum laufen bringen wollen...

  6. #6
    Geiles tut endlihc ferstehe ich was es mit diesen & auf sihc hat THX

  7. #7
    Zitat Zitat
    Original geschrieben von Remos
    Progrannieren?
    Soll der opa seine Nieren neu programmieren oder woran hast du daran gedacht
    Wen nicht verat mir mal was Progrannieren ist
    Hier kannstes nachlesen.

    @Korei: Danke

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •