quakenet:#php Tutorial

Author: Progman, zuletzt bearbeitet von progman @ 2005/06/12 12:41:05

Bitte beachten Sie, dass die Tutorialkapitel zusammenhängen. Wenn sie direkt auf ein Kapitel verlinkt wurden müssen Sie gegebenenfalls die vorherigen Kapitel auch lesen. Achten Sie beim lesen darauf, dass Sie kein Kapitel überspringen.

Grundlagen

  1. Wie sind PHP-Dateien aufgebaut?
  2. Funktionen

1. Wie sind PHP-Dateien aufgebaut?

PHP-Dateien fangen mit <?php an und hören mit ?> auf. Sie müssen die Dateiendung *.php haben, also z.B. index.php, news.php oder clanwars.php. Eine Beispieldatei könnte dann so aussehen:

<?php
    
echo "So könnte eine Datei aussehen\n";
?>

PHP-Dateien können aber auch so aussehen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Hi all</title>
    </head>
    <body>
        <?php
            
echo "<p>Der PHP Code</p>\n";
        
?>
    </body>
</html>

Hier sieht man, dass es sich um ein normales HTML-Dokument handelt, in dem an einer bestimmten Stelle PHP-Code eingebettet wird. Der PHP-Parser arbeitet nur die Sachen ab, die zwischen <?php und ?> stehen. Den restlichen Inhalt der Datei sendet er zum Client, ohne ihn zu parsen.

Die zweite Schreibweise hat aber einen Nachteil: Ihr könnt dann nicht mehr die Headerangaben mit PHP ändern. Header müssen vor dem eigentlichen Inhalt gesendet werden. Mit der Variante habt ihr keine Chance, noch die Header zu modifizieren. Denn beim ersten Zeichen, das gesendet wird (hier das < von <!DOCTYPE ...>), werden die Header mitgesendet und können ab diesem Zeitpunkt nicht mehr durch Aufrufe von setcookie etc. geändert werden. Man erhält die bekannte Fehlermeldung Warning: Cannot add header information - headers already sent by .... Dieses Wissen ist wichtig, wenn man mit Cookies arbeiten möchte (Cookies müssen im Header definiert werden).

Deswegen sollten PHP-Dateien immer mit <?php anfangen, und zwar in der ersten Zeile ab dem ersten Zeichen. Ein Leerzeichen oder ein Zeilenumbruch (Enter) vor <?php ist schon zuviel, denn das sind auch Zeichen, die gesendet werden, obwohl sie nicht sichtbar sind.

2. Funktionen

Wir nehmen mal eine Beispieldatei:

<?php
    phpinfo
();
?>

Wenn ihr diese Datei auf euren Server hochladet und aufruft gibt es zwei mögliche Ergebnisse. Entweder ihr seht nichts oder ihr bekommt jede Menge Informationen über PHP. Dieser Augenblick zeigt, ob ihr alles richtig gemacht habt. Wenn ihr die Informations-Tabellen nicht sieht, müsst ihr folgendes überprüfen:

Wenn ihr die Datei hochgeladen habt, z.B. als phpinfo.php, und nichts angezeigt wird, öffnet mal den Quellcode im Browser. In Opera findet ihr das unter View->Source (Ctrl-F3). Wenn da jetzt euer Inhalt der PHP-Datei steht, unterstützt dieser Server PHP nicht. Der Server hat diese Datei nicht geparst, sondern die Datei einfach so wie sie ist zum Browser geschickt, weil er davon ausging, dass dies eine gewöhnliche HTML-Datei ist.

PHP-Funktionen haben immer den gleichen Aufbau. Sie fangen mit dem Namen der Funktion an, hier phpinfo. Danach kommt eine öffnende Klammer (. Jetzt können Parameter kommen, die an eine Funktion übergeben werden. Anhand solcher Parameter kann die Funktion unterschiedliche Aktionen ausführen. Wenn ihr mehrere Parameter übergeben wollt, müsst ihr diese durch Komma trennen. Was das für ein Sinn hat, dazu kommen wir später. Nachdem alle Parameter übergeben wurden, muss die geöffnete Klammer-auf wieder mit der schließende Klammer ) geschlossen werden. Jeder Funktionsaufruf muss in PHP mit einem Semikolon abgeschlossen werden: Daran erkennt der PHP-Interpreter das Ende einer Anweisung.

<?php
    name_der_funktion
(parameter1, parameter2, ...);
?>

Die einzelnen Informationen können aber auch mit Leerzeichen getrennt werden. Folgende Beispiel sind gleichbedeutend.

<?php
    name_der_funktion
(parameter1,parameter2);                      
    
name_der_funktion(parameter1, parameter2);
    
name_der_funktion ( parameter1, parameter2 ) ;
    
name_der_funktion         (           parameter1        ,     parameter2
    
)
    ;
    
name_der_funktion
    
(
        
parameter1           ,
        
parameter2
    
)    ;
?>

Aber so was liest sich verdammt scheiße ;). Deswegen solltet ihr nur die zweite Schreibweise benutzen. PHP ist es egal, ob da Leerzeichen, Tabulatoren oder Zeilenumbrüche kommen oder nicht. So was kennt ihr aus HTML. Da könnt ihr ja auch Zeilenumbrüche und Einrückungen reinhauen und müsst nicht alles in einer Zeile schreiben.

Die zweite Schreibweise ist übrigens PEAR-Standard, wie man Funktionen mit Parametern aufruft. Nach dem Komma kommt dann immer ein Leerzeichen, so wie man das bei Texten am Computer auch macht. Dadurch erkennt man sofort, wo der eine Parameter endet und der nächste beginnt.

Fragen zum aktuellen Thema

  1. Welche Bedingungen müssen erfüllt sein damit eine PHP-Datei geparst wird?
Welche Bedingungen müssen erfüllt sein damit eine PHP-Datei geparst wird?

Eine PHP-Datei wird geparst, wenn folgende Kriterien erfüllt sind:

  • Die Datei muss auf .php enden.

  • Der Server muss PHP unterstützen.

Nach oben