Hostet man seine eigenen Server ist es von großem Nutzen grobe PHP Kenntnisse zu besitzen.
In dieser Anleitung soll lediglich etwas Grundwissen vermittelt werden,
um vorhandene Scripte besser zu verstehen oder kleine Anpassungen selber vor nehmen zu können.
Ein kleiner Tipp vorweg: Für alle Scripte besonders für PHP einen Editor mit Syntaxhervorhebung verwenden!
z.B. Notepad++.
PHP Dateien haben normal immer die Endung .php oder manchmal auch .php4, .php5 usw.
Unter bestimmten Umständen gibt es Ausnahmen, Beispiel durch Anwendung von .htaccess
Anfang und Ende der Datei sieht so aus:
<?php
//Code
?>
Kurzform (funktioniert nur bei entsprechender Konfiguration des Webservers)
<?
//Code
?>
Eine andere Möglichkeit wäre diese:
//HTML Code
<?php //PHP Code ?>
//HTML Code
Das ist manchmal der einfachste Weg, gilt unter Programmierern aber als unsaubere Lösung
da man normalerweise PHP und HTML Code trennt um einen guten Überblick zu erhalten.
Wird aber bei kleinen Scripten bestehend aus einer Datei meistens angewendet.
Um dem User der die Datei im Browser öffnet etwas an zu zeigen verwenden wir echo();
eine andere Möglichkeit ist print(); wird aber eher selten verendet.
Beispiele:
echo "text";
echo 'text';
echo "text $variable"; //funktioniert nur mit " Zeichen
echo $variable;
//Mit einem . lassen sich Strings und oder Variablen verbinden.
//Funktioniert nicht nur mit echo(); sondern fast überall in PHP.
echo "text: ".$variable;
echo "html code";
HTML Code enthält öfter " Zeichen, wenn unser echo auch mit " Zeichen beginnt,
müssen wir diese im HTML Code escapen.
PHP denkt sonst das echo(); oder egal welche Funktion wäre an dieser Stelle zu Ende.
Dies gilt genau so für die ' Anführungszeichen.
Hierzu setzen wir einen Backslash vor jedes Anführungszeichen innerhalb des echo();:
Variablen kann man sich wie kleine Behälter vorstellen in denen Text, Zahlen oder Werte gespeichert werden können.
Variablen beginnen mit einem $ Zeichen und dahinter der Name der Variable.
Das erste Zeichen hinter dem $ Zeichen muss ein Buchstabe oder ein _ sein,
eine Variable kann also $a123 heißen aber nicht $123. Wichtig ist auch die groß/klein Schreibung,
$abc und $Abc sind zwei unterschiedliche Variablen.
$txt = "Apfel";
$txt2 = 'rot';
echo 'der '.$txt." ist $txt2";
//Ausgabe ist dann: der Apfel ist rot
$variable = "Der Vogel ";
$variable .= "fliegt";
echo $variable;
//Ausgabe ist dann: Der Vogel fliegt
Dann gibt es noch die so genannten Suberglobalen Variablen.
Diese werden automatisch vom Server definiert.
Beispiele:
$_GET //Enthält Daten die an den Link hinten dran gehangen wurden.
$_POST //Enthält z.B. Daten aus einem Eingabefeld.
$argv //Enthält übergebene Parameter falls die Datei lokal ausgeführt wird.
Variablentypen
Integer Abkürzung INT: enthält nur Zahlen ohne Komma. String: enthält Text, Satz, oder ein Wort. Float: enthält eine Dezimalzahl also eine Zahl mit Komma. Double: Ähnlich wie float, nur mit mehr Nachkommastellen. boolean Abkürzung bool: Enthält Werte wie true und false.
Mit der If Anweisung können wir abfragen ob Variablen gesetzt wurden, einen bestimmten Inhalt haben,
Dateien existieren usw. und dementsprechend handeln.
Beispiel:
$var = "123";
if($var == "123") {
echo "var ist 123";
} //Ausgabe: var ist 123
if($var == "123" AND $var < 999) {
echo "var ist 123 und kleiner als 999";
} //Ausgabe: var ist 123 und kleiner als 999
if($var == "123" OR $var < "55") {
echo "var kann 123 oder vielleicht auch kleiner als 55 sein";
} //Ausgabe: var kann 123 oder vielleicht auch kleiner als 55 sein
//Das ! Zeichen hiest so viel wie "nicht"
if($var != "123") {
echo "var ist nicht 123";
} else {
echo "var ist 123";
} //Ausgabe: var ist 123
if(is_numeric($var)) {
echo "var ist eine Zahl";
} else {
echo "var ist keine Zahl";
} //Ausgabe: var ist eine Zahl
if($var > "5") {
echo "var ist größer als 5";
} //Ausgabe: var ist größer als 5
//kurzform
echo (bedingung) ? (dann) : (oder);
echo ($a)==1? "a ist 1" : ( ($a)==2? "a ist2" : "nix von beiden" );
Hier eine Liste der Vergleichsoperatoren:
$a == $b Gleich Gibt TRUE zurück, wenn $a gleich $b ist. $a === $b Identisch Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind (eingeführt in PHP 4).
$a != $b Ungleich Gibt TRUE zurück, wenn $a nicht gleich $b ist. $a <> $b Ungleich Gibt TRUE zurück, wenn $a nicht gleich $b ist. $a !== $b Nicht identisch Gibt TRUE zurück, wenn $a nicht gleich $b ist, oder wenn beide nicht vom gleichen Typ sind (eingeführt in PHP 4).
$a < $b Kleiner Als Gibt TRUE zurück, wenn $a kleiner als $b ist. $a > $b Größer Als Gibt TRUE zurück, wenn $a größer als $b ist. $a <= $b Kleiner Gleich Gibt TRUE zurück, wenn $a kleiner oder gleich $b ist. $a >= $b Größer Gleich Gibt TRUE zurück, wenn $a größer oder gleich $b ist.
logische Operatoren
#Bei AND oder && müssen beide Bedingungen erfüllt sein
#Bei OR oder || muss mindestens eine Bedingung erfüllt sein
#Bei XOR darf nur eine Bedingungen erfüllt sein
Schleifen wiederholen sich bis ein Wert erreicht ist oder sie mit break; abgebrochen werden
Das geht meistens rasend schnell, eine kurze Unterbrechung (10 Sekunden) lässt sich mit sleep(10); erreichen.
Damit wir Dateien schreiben können benötigt das PHP Script CHMOD(unix) 777 Rechte.
Diese setzen wir über das FTP Programm, bei FileZilla Rechtsklick Dateiberechtigungen.
Oder über den SSH Zugang mit chmod
$datei = fopen("log.txt","r+"); //Detei öffnen im Modus lesen&schreiben
$text = fgets($datei, 10); //Datei auslesen nur die ersten 10 Zeichen
rewind($datei); //Dateizeiger auf Anfang setzen
fwrite($datei, "Text"); //Datei schreiben
fclose($datei); //Datei schließen
r Modus:Lesen Dateizeiger:Anfang Datei-erstellen:Nein r+ Modus:Lesen und Schreiben Dateizeiger:Anfang Datei-erstellen:Nein w Modus:Schreiben Dateizeiger:Anfang Datei-erstellen:Ja w+ Modus:Lesen und Schreiben Dateizeiger:Anfang Datei-erstellen:Ja a Modus:Schreiben Dateizeiger:Ende Datei-erstellen:Ja a+ Modus:Lesen und Schreiben Dateizeiger:Ende Datei-erstellen:Ja
Das Format d.m.Y - H:i können wir so anpassen wie wir es brauchen und mit Zeichen trennen.
Hier die wichtigsten Formate:
d Tag des Monats, zweistellig 04, 15 j Tag des Monats 5, 23 m Nummer des Monats, zweistellig 05, 12 n Nummer des Monats 4, 11 y Jahr, zweistellig 98, 05 Y Jahr, vierstellig 1998, 2005 H Stunden im 24-Stunden-Format, zweistellig 04, 18 G Stunden im 24-Stunden-Format 4, 14 i Minuten, zweistellig 04, 32 s Sekunden, zweistellig 02, 55 w Wochentag in Zahlenwert 1, 5
$empfaenger = "empf@domain.de";
$betreff = "Email von PHP Script";
$from = "From: server \n";
$from .= "Reply-To: absender@domain.de\n";
$from .= "Content-Type: text/html\n";
$text = "hier unser text".$var."noch mehr text";
mail($empfaenger, $betreff, $text, $from);
Es gibt noch diverse andere Parameter, dies sind nur die wichtigsten.
Natürlich können wir auch HTML Code und Emails mit Dateianhang versenden,
darauf gehen wir hier aber nicht weiter ein weil das schon etwas aufwändiger ist.