PHP: Hypertext Preprocessor
PHP ist eine leistungsfähige Skriptsprache für Webautoren. Man schreibt Spezialanweisungen in den HTML-Text, die der Webserver interpretiert, bevor die Seite dem Browser geliefert wird.
Die zentralen Webserver www.tu-chemnitz.de
und www-user.tu-chemnitz.de
sind hinsichtlich PHP nahezu identisch konfiguriert:
www.tu-chemnitz.de |
PHP-Befehle im zentralen Webspace | PHP 8 – Konfiguration |
---|---|---|
www-user.tu-chemnitz.de |
PHP-Befehle im Webspace der Nutzer | PHP 8 – Konfiguration |
Einführung, Dokumentation
Dateien mit PHP-Befehlen müssen die Endung .html
(empfohlen) oder
.php
haben, dann wird der enthaltene PHP-Code auch ausgewertet.
Dateien mit der Endung .phps
werden nicht interpretiert, sondern der Quelltext direkt im Browser angezeigt.
(Also Achtung bei Code, der Geschäftslogik oder interne Kommentare enthält!)
.phps-Aufrufe sind aber standardmäßig vom Zugriff ausgenommen (Require all denied
), müssen also explizit berechtigt werden.
So sieht es im Webbrowser aus – PHP-Anweisungen werden ausgeführt.
<html lang="de">
<head>
<title>PHP-Beispiel: Einfache Anweisungen</title>
</head>
<body>
<main>
<h1>PHP-Beispiel: Einfache Anweisungen</h1>
<p>Hallo, <?php echo $_SERVER['REMOTE_ADDR']; ?></p>
<p>Heute ist der
<?php
# Kommentar: Gib das Datum aus, dann je nach Monat noch eine Zeichenkette
$tag = date('z') + 1;
echo date('d. m. Y') . ', der ' . $tag . '. Tag des Jahres. ';
$monat = date('m');
if ($monat == 1 || $monat == 2 || $monat == 12) {
echo 'Es ist Winter.';
} else if ($monat > 2 && $monat < 6) {
echo 'Es ist Frühlingszeit.';
} else if ($monat > 5 && $monat < 9){
echo 'Es ist Sommer.';
} else {
echo 'Es ist Herbstzeit.';
}
?>
</p>
</main>
</body>
</html>
Man sieht, dass die PHP-Anweisungen vom HTML-Text durch die Tags <?php … ?>
abgetrennt sind. Es wird auch deutlich, dass PHP wichtige Elemente einer Programmiersprache besitzt – Variablen, Ausdrücke,
Anweisungen, Steuerelemente, Klassen. Zur Beschreibung sei auf folgende Dokumente verwiesen:
- PHP-Handbuch: deutsch oder englisch
- PHP Homepage (englisch)
- SELFPHP – PHP-Dateien selbst erstellen
Lesen Sie unbedingt unsere Hinweise zum sicheren Programmieren mit PHP.
Tipps
PHP-Fehlermeldungen (für Entwicklung/Fehlersuche)
Fehler auf der Webseite anzeigen (nur während der Entwicklung)
- in Datei
.htaccess
:php_flag display_errors on
- Nach der Entwicklungsphase bitte wieder ausschalten.
Fehler in eine Datei schreiben
-
in Datei
.htaccess
:# PHP-Fehler in Datei schreiben php_value log_errors on # Datei in eigenem Verzeichnis, muss schreibbar für Webserver sein: php_value error_log "/afs/tu-chemnitz.de/home/urz/.../public_html/log/php_errors" # Welche Fehler: alle = -1, wichtigste = 8, schlimmste = 1 php_value error_reporting -1 # maximale Größe der Fehlerdatei in Bytes: unbegrenzt = 0 … bis der Speicher voll ist php_value log_errors_max_len 1000000 # Log-Datei vor Webzugriff schützen <Files "php_errors"> Require all denied </Files>
- Nach der Entwicklungsphase bitte wieder ausschalten.
Start-Tag
Der Webserver interpretiert nur PHP-Anweisungen, die innerhalb spezieller Tags stehen:
<?php echo "Hallo"; ?>
.
Bislang unterstützen wir auch die Kurzform <? … ?>
Da dies jedoch nicht XML- und XHTML-konform ist, sollten alle PHP-Programmierer die obige Langform verwenden.
.htaccess
im Verzeichnis des PHP-Skriptes ein:
php_flag short_open_tag off
Dies benötigen Sie momentan auch, wenn Sie in einem Dokument PHP-Anweisungen und XML processing instructions verwenden, z. B. <?xml … ?>