PHP ist ein Open-Source-Projekt der Apache Software Foundation, 53% der produktiven Apache-Webserver haben PHP-Fähigkeiten (Dez. 2003).
Eine gepflegte Liste von PHP-Editoren findet sich unter http://phpeditors.linuxbackup.co.uk/.
PHP arbeitet den Code von oben nach unten ab.
Whitespace haben (abgesehen von der Trennung einzelner "Anweisungen") keine Auswirkungen, sie werden v.a. eingesetzt um den Code lesbarer zu machen. Man kann beliebige Kombinationen von Whitespaces verwenden, Leerzeichen, Tabulatoren, Carriage Returns...
Statt <?php ... ?> ist auch <? ... ?> (SGML-Stil) möglich.
PHP geht per Voreinstellung von iso-8859-1 (Latin-1) aus. High-Bit-Zeichen (diejenigen die in ASCII nicht vorhanden sind) können normal verwendet werden. Es ist (falls aus technischen Gründen notwendig) auch möglich, diese mit \x gefolgt von einer Hexadezimalzahl zu maskieren.
$name = "Paul Esterházy"; // kann auch geschrieben werden als...
$name = "Paul Esterh\xe1zy";
Die Zeichenkodierung sollte dem Browser mit folgender Zeile mitgeteilt werden:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Eine umfassende Beschreibung der iso-Zeichensätze findet sich unter http://en.wikipedia.org/wiki/ISO_8859.
PHP kann auch für die Verwendung von Unicode konfiguriert werden.
Einzeilig: // Kommentar
andere Möglichkeit: # Kommentar
Mehrzeilig: /* Kommentar */
Auch Blöcke dürfen von HTML unterbrochen werden. Innerhalb eines Blockes deklarierte Variablen sind lokal.
include("Dateiname"); bindet die Datei nur ein, wenn dieser (einbindende) Code auch abgearbeitet wird. Ist Einbindung der Datei nicht möglich, wird eine Warnung ausgegeben.
require("Dateiname"); bindet die Datei auch ein, wenn dieser (einbindende) Code nicht abgearbeitet wird. Ist das Einbinden nicht möglich, kommt es zu einem fatalen Fehler.
Include-Dateien können ihrerseits wieder weitere Dateien einbinden. Um zu verhindern, dass eine Datei zweimal eingebunden wird, kann man die Funktionen include_once() und require_once() verwenden.
PHP-Code in eingebundenen Dateien muss immer von den PHP Start- und End-Tags umgeben sein, ansonsten wird er als HTML-Code verarbeitet.
Pfade für Include-Dateien können sowohl unter Unix als auch unter Windows mit vorwärtsgerichteten Schrägstrichen angegeben werden.
Für den Zugriff auf Include Dateien empfiehlt es sich, den Parameter include_path in php.ini zu verwenden. Danach müssen die Pfade relativ zu diesem Verzeichnis angegeben werden.
echo("Hallo PHP"); oder echo "Hallo PHP";
echo() akzeptiert beliebig viele Argumente, print() hat die gleiche Funktion wie echo, akzeptiert aber nur ein Argument.
PHP verfügt über acht Datentypen. Die ersten vier sind skalare Datentypen, d.h. sie enthalten nur einen einzelnen Wert.
Ganze Zahlen von -2'147'483'648 bis 2'147'483'647 (32 Bit).
Können auch in der Form 3.56E9 (=3'560'000'000) oder 3.56e9 geschrieben werden.
Strings können in einfache (') oder zweifache (") Anführungszeichen eingeschlossen werden. Bei Strings in doppelten Anführungszeichen können einfache ohne Maskierung verwendet werden, Bsp. "Ihr Login lautet 'Gandalf'."
Code | Beschreibung |
---|---|
\" | doppeltes Anführungszeichen |
\\ | Backslash |
\n | New Line |
\r | Carriage Return |
\t | Tabulator |
\$ | Dollarzeichen |
Newline Zeichen können direkt in ein Stringliteral geschrieben werden, dies ist ein SQL-Anweisungen besonders praktisch.
$var = "Das ist ein String
mit Newline Zeichen";
Kann als Wert eine der beiden Konstanten TRUE und FALSE annehmen.
Ein Typ der für das Fehlen eines Werts steht.
Halten Handler zu externen Datenstrukturen wie geöffneten Dateien oder Datenbankverbindungen.
Folgende Funktionen können für eine explizite Konvertierung verwendet werden.
string strval(mixed variable)
integer intval(mixed variable)
float floatval(mixed variable)
Explizites Typecasting ist auch im C-Stil möglich:
$int = (integer) $var;
PHP unterscheidet zwischen Gross- und Kleinschreibung (allerdings nicht bei Klassennamen). Die Benutzung und Deklaration einer Variablen wird immer mit $ eingeleitet.
Variablennamen können aus Buchstaben, Ziffern und dem Unterstrich "_" bestehen. Sie dürfen nicht mit einer Ziffer beginnen.
Sämtliche Variablen können Werte sämtlicher Typen annehmen, Deklarationen sind nicht notwendig, eine Variable erzeugt man indem man ihr einen Wert zuweist.
Innerhalb einer Funktion eingeführte (also lokale) Variablen sind ausserhalb unbekannt.
Ausserhalb einer Funktion deklarierte Variablen sind innerhalb unbekannt, es sei denn man "importiert" sie mit global.
Variablen können direkt in ein Stringliteral eingebaut werden.
$name = "Hans";
echo("Ihr Name ist $name, viel Glück");
Die Variablenersetzung funktioniert nicht in Stringliteralen die in einfache Anführungszeichen eingeschlossen sind.
Ist der Variablenname nicht eindeutig oder folgt nach dem Variablennamen kein Whitespace, muss er in geschweifte Klammern {...} eingeschlossen werden.
$memory = 256;
$memoryRAM = 512;
// {...} notwendig da kein Whitespace nach $memory
echo("Your Computer has {$memory}MBytes memory");
// {...} notwendig da Variablenname nicht eindeutig
echo("Your Computer has {$memory}RAM");
Variablenersetzung kann auch in Variablennamen angewendet werden.
$anzahl = 12;
$name = "anzahl";
echo ($$name); // gibt 12 aus
Mit der Anweisung global $a; kann man eine globale Variable (ausserhalb der Funktion definiert) innerhalb der Funktion verfügbar machen. Wird eine nicht existierenede Variable mit global innerhalb einer Funktion verfügbar gemacht, gilt sie auch in der Funktion als nicht gesetzt!
isset($test) prüft ob $test exisitert.
empty($test) prüft ob eine Variable gleich false ist.
Wert von $var | isset($var) | empty($var) |
---|---|---|
unset($var)... | false | true |
null | false | true |
0 | true | true |
true | true | false |
false | true | true |
"0" | true | true |
"" | true | true |
"foo" | true | false |
array() | true | true |
unset($test) löscht $test.
gettype() gibt den Datentyp einer Variable - oder unknown type falls dieser unbekannt ist - zurück.
settype($a, "double"); konvertiert $a zu double. Konvertierungen können auch mit dem Cast-Operator wie in C oder Java durchgeführt werden, Bsp: $b = (double) $a;.
weitere Variablenfunktionen sind:
is_long() is_int() is_integer() is_double() is_real() is_float() is_string() is_array() is_object() is_numeric()
sie sind alle vom Typ boolean.
Syntax: define("KONSTANTENNAME", Wert);
Beispiel: define("PI", 3.14159);
Der Aufruf einer Konstante erfolgt ohne $.
Konstantennamen werden per Konvention in Grossbuchstaben geschrieben.
boolean defined(string konst_name)
Überprüft ob eine Konstante definiert wurde.
$b = &$a; weist $b die Speicheradresse von $a zu. Eine andere Möglichkeit ist $b =& $a.
% gibt den Rest einer ganzzahligen Division zurück (Modulo-Operator).
$a . $b verkettet die Strings $a und $b.
$a .= $b hängt String $b an das Ende von String $a.
=== prüft ob Wert und Datentyp zweier Variablen gleich sind.
!== prüft ob Wert und Datentyp zweier Variablen verschieden sind.
Inkrement- und Dekrement-Operatoren (prefix und postfix) entsprechen denjenigen von Java.
Die logischen Operatoren sind: and, or, xor, &&, || und !.
Eine Zuweisung gibt auch einen Wert zurück:
$y = ($x = 11); // jetzt enthalten $y und $x den Wert 11
Die Klammern wären nicht notwendig.
Zeit und Datum werden in PHP als UNIX-Timestamps gespeichert. Ein UNIX-Timestamp zählt die Sekunden, welche seit dem 1. Januar 1970, 00:00:00 Greenwich Mean Time vergangen sind.
integer time()
Erzeugt einen Timestamp mit aktuellem Datum und Uhrzeit.
integer gmmktime(hour, minute, second, month, day, year)
Erzeugt einen entsprechenden Timestamp, alle Argumente sind vom Typ integer.
array getdate(integer timestamp)
Gibt ein assoziatives Array mit Informationen über den Timestamp zurück.
Elementname | Beschreibung |
---|---|
mday | Monatstag |
mon | Monat als Zahl |
year | Jahr |
wday | Wochentag als Zahl zwischen 0 und 6 |
hours | Stunde im 24-hour Format |
minutes | Minuten |
seconds | Sekunden |
int strtotime(string date)
Versucht einen String als Datum zu parsen und gibt das Datum als Timestamp zurück. Akzeptiert Strings im MySQL-Format (yyyy-mm-dd).
boolean checkdate(integer month, integer day, integer year)
Gibt TRUE zurück, falls es sich um ein gültiges Datum handelt.
int cal_days_in_month(const kalendar, integer monat, integer jahr)
Gibt die Anzahl Tage des Monats zurück. Der Kalender wird mit einer Konstante angegeben, welche für den Gregorianischen CAL_GREGORIAN heisst.
if (Bedingung) {...} elseif (Bedingung) {...} else {...}
Bei einzelnen Anweisungen können die geschweiften Klammern weggelassen werden.
Beispiel:
$a = "Hallo"; switch ($a) { case "Hallo" : echo("Deutsch"); break; case "Hello" : echo("Englisch"); break; case "Hola" : echo("Spanisch"); break; default : echo("Diese Sprache kenne ich nicht"); }
while (Ausdruck) {
Anweisungen
}
do { Anweisungen } while(Ausdruck);
for (Initialisierung; Bedingung; Inkrement) {
Anweisungen
}
Mit foreach kann man einen Array durchlaufen.
foreach ($array as $value) { Anweisungen }
Bei jedem Durchlauf hat value den Wert des nächsten Array-Elements.
foreach (array as $key=>$value) { Anweisungen }
Bei jedem Durchlauf hat key den Wert des zu value gehörenden Index resp. Schlüssel.
Bei allen Schleifen kann die Anweisung break; verwendet werden, um die Schleife vorzeitig abzubrechen.
continue; wird verwendet um die Schleife erneut zu durchlaufen und die restlichen Anweisungen im Schleifenrumpf zu ignorieren.
break und continue machen den Code allerdings unübersichtlich und sollten daher sparsam verwendet werden.
sleep(integer seconds)
Die Ausführung des Skripts macht eine Pause von seconds Sekunden.
usleep(integer microseconds)
Die Ausführung des Skripts wird für microseconds Mikrosekunden unterbrochen.
function double($value) { $double_value = 2 * $value; return($double_value); }
Statt return($double_value); ist auch return $double_value; möglich.
return ist die letzte Anweisung, welche ausgeführt wird, mit return; kann die Ausführung einer Funktion abgebrochen werden.
Standardmässig werden Parameter als Wert übergeben. Definiert man eine Funktion mit
function double(&$value) {...
wird statt des Wertes von $value ein Zeiger auf die Speicherstelle von $value übergeben. double() kann dann nicht mehr mit einem Literal als Argument aufgerufen werden, double(5) würde einen Fehler verursachen.
function multiply($value, $factor = 2) { return($value * $factor); }
multiply() kann auch mit nur einem Argument aufgerufen werden, $factor erhält in diesem Fall den Wert 2.
Wird einer Bibliotheks-Funktion ein Argument eines anderen Typs übergeben als erwartet, kommt es zu einer automatischen Typkonvertierung.
Ist der übergebene Typ bei einer selbstdefinierten Funktion wichtig, sollte er getestet werden.
Variablen die ausserhalb einer Funktion definiert wurden, sind innerhalb nicht ansprechbar. Von dieser Regel gibt es drei Ausnahmen:
global sollte nicht allzu grosszügig verwendet werden, da es zu unübersichtlichem Code führt. Mit global lässt sich das Problem lösen, dass eine Funktion nur einen Wert zurückliefern kann, es ist jedoch besser, das Problem mit der Übergabe von Parametern als Referenz zu lösen. Eine andere Lösungsmöglichkeit, ist die Rückgabe eines Arrays.
Arrays sind in PHP flexibler und ausgefeilter als in den meisten anderen Programmiersprachen. Sie können Skalarwerte, Objekte und andere Arrays enthalten. Es ist möglich, im gleichen Array Werte verschiedener Typen zu speichern.
Eine komfortable Methode ist die Funktion array().
$Tiere = array("Fuchs", "Hirsch", "Dachs", "Hase");
Dies erzeugt das gleiche Ergebnis wie
$Tiere[0] = "Fuchs"; $Tiere[1] = "Hirsch"; $Tiere[2] = "Dachs"; $Tiere[3] = "Hase";
oder
$Tiere[] = "Fuchs"; $Tiere[] = "Hirsch"; $Tiere[] = "Dachs"; $Tiere[] = "Hase";
Ein leeres Array kann mit dem Rückgabewert von array() ohne Argumente angelegt werden. Damit lässt sich auch ein bestehendes Array leeren ohne es zu zerstören.
Soll die Indizierung nicht mit 0 beginnen, lässt sich dies wie folgt bewerkstelligen:
$tiere = array(1 => "Fuchs", "Hirsch", ...);
Als Index kann man auch Strings verwenden, man redet in diesem Fall von assoziativen Arrays; sie werden in anderen Sprachen auch als Hash-Arrays oder Hash-Tabellen bezeichnet.
$Benutzer["Vorname"] = "Peter"; $Benutzer["Nachname"] = "Schmidt"; $Benutzer["eMail"] = "peter.schmidt@hotmail.com";
Assoziative Arrays können auch mit der Funktion array() erzeugt werden:
$array = array("first" => 1, "second" => 2, ...);
$monate = {"Januar", "Februar", "März",...};
resultiert in einem Array mit $monate[0] == "Januar". Mit
$monate = {1=>"Januar", "Februar", "März"...};
erhält man einen Array mit $monate[1] == "Januar".
Im Gegensatz zu Variablen eines skalaren Typs müssen Arrays für die Variablenersetzung in geschweifte Klammern gesetzt werden.
$output = "Der betreffende Monat ist {$monate[2004][3]}, wir wünschen Ihnen eine gute Reise";
Die Funktion print_r() gibt die Array-Elemente und ihre Schlüssel aus. Damit die Formatierung korrekt ist, sollte diese Ausgabe in <pre> und </pre> eingeschlossen werden.
Membervariablen werden innerhalb der Klassendefinition mit dem Schlüsselwort var deklariert.
Membervariablen referenziert man innerhalb der Klassendefinition mit $this->....
Für den Konstruktor definiert man eine Funktion die den selben Namen wie die Klasse hat.
Die Definition von Konstanten ist nicht erlaubt.
class User { var $name; var $passwort;
/* Konstruktor */ function User($name, $passwort) { $this->name = $name; $this->passwort = $passwort; } function print_name() { /* Membervariablen müssen für die Variablenersetzung in {...} eingeschlossen werden */ echo("Der User heisst {$this->name}"); } }
Auf ausserhalb der Klasse definierte Konstanten kann in Methoden normal zugegriffen werden.
Globale (ausserhalb der Klasse definierte) Variablen müssen auch innerhalb von Methoden mit global verfügbar gemacht werden. Ohne $this-> kann in Methoden also nur auf lokale Variablen zugegriffen werden.
Ausserhalb der Klasse definierte Funktionen können in Methoden normal aufgerufen werden.
$user = new User("Pinoccio", "geheim");
$user->print_name();
Destruktoren, private Membervariablen und -funktionen, statische Membervariablen und -funktionen sowie Überladen gibt es erst ab PHP5.
Methoden können auch ohne Instanz der Klasse mit Klassenname::Methodenname() aufgerufen werden. Verwendet die Methode Membervariablen, enthalten diese den Wert NULL.
class Ganzes { var $mein_teil; // Membervariable /* KONSTRUKTOR */ function Ganzes(&$teil) { // Übergabe des Parameters als Referenz $this->mein_teil =& $teil; // Zuweisung ebenfalls als Referenz } }
Soll das Objekt $teil in der Membervariablen $mein_teil der Klasse Ganzes als Referenz gespeichert werden, ist darauf zu achten den Operator & sowohl in der Parameterliste als auch bei der Zuweisung an die Membervariable zu verwenden. Ansonsten wird an einem der beiden Orte das Objekt $teil geklont.
Eine Klasse ableiten:
class Sohn extends Vater { function Sohn() { Vater::Vater() // Aufruf des Oberkonstruktors } }
Das Überschreiben von Methoden ist möglich, Überladen jedoch nicht. Auf (überschriebene) Methoden der Vaterklasse kann mit Vaterklasse::methode() zugegriffen werden.
boolean class_exists(string name)
Prüft ob eine enstprechende Klassendefinition vorhanden ist.
array get_declared_classes()
Gibt einen Array mit allen selbstefinierten Klassen sowie den internen Klassen stdClass, OverloadedTestClass und Directory zurück.
string get_class(object obj)
Gibt die Klasse von $obj als string zurück, allerdings in Kleinbuchstaben.
array get_object_vars(object obj)
Gibt einen assoziativen Array mit allen Membervariablen des Objekts obj zurück (key=Variablenname und value=Wert).
boolean method_exists(object obj, string methode)
Prüft ob obj über die Methode methode verfügt. Der Methodenname muss ohne "()" angegeben werden.
boolean is_a(object obj, string klasse)
Prüft, ob obj eine Instanz der Klasse klasse oder einer ihrer Unterklassen ist.
var_dump() kann auch auf Objekte angewendet werden. Besitzt Objekt1 jedoch eine Referenz auf Objekt2 welches wiederum eine Referenz auf Objekt1 hat, gerät var_dump() in eine Endlosschleife.
Lösung: var_dump() kann auch innerhalb einer Methode mit $this als Argument aufgerufen werden. Man schreibt sich eine Methode, welche temporär die Rückbezüglichen Referenzen auf einen anderen Wert setzt, macht den dump und setzt die Referenzen danach wieder.
php.ini ist der Konfigurationsfile von PHP. Es handelt sich um einen Textfile, in welchem auf jeder Zeile eine Direktive initialisiert wird.
string ini_get(string varname)
Gibt den in php.ini gesetzten Wert der als String übergebenen Direktive zurück.
Gewisse Direktiven können innerhalb eines Skripts mit der Funktion ini_set() geändert werden. Diese Änderung gilt aber nur für das aktuelle Skript und die Zeit dessen Ausführung.
string ini_set(string varname, string new_value)
Ändert eine Direktive in php.ini. Bei Erfolg gibt ini_set() den alten Wert zurück, bei Misserfolg FALSE.
Sessions besitzen zwei Komponenten: Einen Array mit Session-Variablen und einen Session-Identifier (ID).
Üblicherweise werden die Session-Variablen auf dem Server in einer Datei gespeichert, indem die Werte serialisiert werden. Aber auch die Speicherung in einer Datenbank ist möglich.
Bei der Verwendung von Sessions werden die Session-Variablen nicht über das Web zwischen Server und Client übermittelt, sondern nur die Session-ID. Die Übermittlung der Session-ID erfolgt (falls Cookies auf Client aktiviert) als Cookie.
Im Idealfall logt sich ein Benutzer aus und die Session wird explizit beendet. Da sich aber niemals alle Benutzer ausloggen, kann der Server nie sicher sein ob ein Benutzer immer noch da ist und muss Sessions die längere Zeit nicht mehr benutzt wurden löschen.
Um das Reload-Problem zu verhindern, sollte die Session in einer nicht angezeigten Seite erzeugt werden.
string session_id([string id])
Setzt die Session-ID oder gibt diese zurück (falls ohne Argument aufgerufen).
Setzt man die Session-ID (bei bestehender Session, z.B. weil Cookies deaktiviert sind), so muss dies vor dem Aufruf von session_start() erfolgen, da ansonsten eine neue Session mit neuer Session-ID erzeugt wird.
Jede PHP-Seite die mit Sessions arbeitet muss die Funktion session_start() aufrufen, und zwar bevor irgendwelche Ausgaben gemacht werden.
Ist noch keine Session vorhanden, so erzeugt session_start() eine solche und übermittelt sie an den Browser. Bei einer bereits vorhandenen Session sucht PHP die Session-Datei und initialisiert die Session-Variablen. Ist die Seite fertig abgearbeitet, schreibt PHP die geänderten Session-Daten automatisch in die Datei zurück.
Der folgende Code überprüft ob eine Session-Variable namens count existiert:
if (!isset($_SESSION["count"])) {... // true falls count nicht existiert
Mit folgender Anweisung wird nur die Variable $count aus der Session entfernt.
unset($_SESSION["count"]);
Alle Variablen aus einer Session zu entfernen ohne die Session zu zerstören erreicht man mit:
$_SESSION = array();
Session-Variablen können jeden Typs sein, auch Objekte. Bei der Speicherung von Objekten muss man aber die Klassendefinitionen in die Skripte einschliessen, am besten mit require() oder require_once().
Mit der Funktion session_destroy() beendet man eine Session, im Skript muss jedoch zuvor session_start() aufgerufen werden. Bietet die Anwendung eine Logout-Möglichkeit, ist dies natürlich der optimale Zeitpunkt.
session_destroy() entfernt die Session-Datei vom Server, nicht aber das Cookie vom Client. Dies spielt aber keine Rolle, da PHP mit Cookies denen keine Session-Datei auf dem Server entspricht umgehen kann.
Mit session_register("<variablenname>") registriert man eine globale Variable in der Session. Wertänderungen nach dem Aufruf von session_register() werden automatisch aktualisiert. Die Variable steht auf den anderen Seite nach dem Aufruf von session_start() richtig initialisiert zur Verfügung. Auch Arrays und Objekte können registriert werden (bei Objekten muss allerdings die Klassendefinition in das Skript eingebunden werden).
session_unregister("<variablenname>") entfernt die Variable aus der Session.
Mit session_is_registered("<variablenname>") lässt sich prüfen ob eine Variable bereits registriert ist.
Wurde auf der ersten Seite eine Session gestartet, kann ab der zweiten Seite geprüft werden, ob die Variable $_COOKIES["PHPSESSID"] gesetzt ist. Ist dies nicht der Fall, so sind Cookies beim Browser deaktiviert.
Bei deaktivierten Cookies kann die Session-ID in versteckten Formularfeldern und bei internen Hyperlinks als Parameter dem Server übermittelt werden.
Sind Cookies deaktiviert, erzeugt PHP automatisch die Konstante SID, welche "PHPSESSID=<Session-ID>" enthält. Man kann interne Links wie folgt erzeugen: <a href="file3.php?<?= SID ?>">weiter</p>.
Die nächste Seite prüft ob ein Request-Parameter namens PHPSESSID vorhanden ist (sowohl GET als auch POST) und falls ja wird die Session-ID entsprechend gesetzt.
string gettype(mixed expression)
Gibt den Typ der Ausdrücke (oder der Variablen) als String zurück.
var_dump(mixed expression [, mixed expression...])
Gibt Informationen über die übergebene(n) Variable(n) oder Ausdruck/Ausdrücke auf der Seite aus.
print_r(mixed expression)
Gibt eine Kurzdarstellung von Arrays und Objekten auf der Seite aus.
Ab PHP4 werden Zusicherungen unterstützt. Anhand der Funktion assert() lassen sich Zusicherungen in den Code einbauen.
boolean assert(string|boolean assertion)
Sind assertions aktiviert (assert.active = "1" in php.ini) kann mit assert eine Zusicherung geprüft werden. Ist assertion ein bool'scher Ausdruck der zu FALSE evaluiert, gibt PHP eine Warnmeldung aus.
resource fopen(filename, mode, [use_include_path], [context])
Mode | Erlaubte Operationen |
---|---|
"r[b]" | nur lesen |
"w[b]" | nur schreiben, wenn nötig erzeugen, vorhandenen Inhalt löschen |
"a[b]" | anfügen, erzeugen wenn nötig |
"r+[b]" | lesen und schreiben |
"w+[b]" | lesen und schreiben , wenn nötig erzeugen, vorhandenen Inhalt löschen |
"a+[b]" | lesen und schreiben, erzeugen wenn nötig |
Verwendet man b als letzten Teil, geht PHP von einem Binärfile aus und end-of-line-Zeichen haben keine spezielle Bedeutung.
boolean fclose(recource file)
boolean feof(resource file)
Gibt true zurück, wenn man sich am Dateiende befindet.
boolean file_exists(string filename)
Gibt true zurück, falls die Datei existiert.
string file_get_contents(string filename, boolean use_include_path)
Gibt den gesamten Inhalt als String zurück, kann auch auf Binärdateien (z.B. Bilder) angewendet werden. Statt eines Dateinamens kann auch eine URL angegeben werden. Um eine Datei direkt an den Browser zu senden, sollte man readfile() benutzen.
boolean file_set_contents(string filename, string contents)
Erzeugt oder ersetzt die Datei und schreibt den mit contents übergebenen Inhalt rein.
integer filectime(string filename)
Gibt unter UNIX die Zeit (in Millisekunden seit 1970) zurück bei welcher die Datei zum letzten Mal geändert wurde. Unter WINDOWS die Zeit zu welcher die Datei erzeugt wurde.
integer filesize(string filename)
Gibt die Dateigrösse in Bytes zurück.
boolean mkdir(string directory, integer mode)
Erzeugt ein Verzeichnis, mode wird unter WINDOWS ignoriert und folgt unter UNIX den Regeln von chmod.
Werte die in der DB NULL sind, erhalten auch bei SELECT-Abfragen im resultset den PHP-Wert NULL.
resource mysql_connect(string host, [string user], [string passwort])
Verbindet mit einer MySQL-Datenbank. Tritt ein Fehler auf, wird FALSE zurückgegeben.
boolean mysql_select_db(string database, [resource connection])
Wählt eine Datenbank aus, lässt man connection weg, wird die zuletzt geöffnete Verbindung benutzt. Gibt bei Erfolg TRUE zurück, sonst FALSE.
resource mysql_query(string sql [, resource connection])
$rs = mysql_query("select...", $connection);
Liefert einen Zeiger auf das Resultset zurück, dieser Zeiger (hier $rs) existiert auch wenn ein leeres Resultset zurückgegeben wird. Kommt es zu einem Fehler, wird FALSE zurückgegeben.
integer mysql_num_rows(resource rs)
gibt die Anzahl Datensätze im Resultset rs zurück.
array mysql_fetch_array(resource rs [, MYSQL_NUM|, MYSQL_ASSOC])
Gibt einen Array mit dem nächsten Datensatz zurück, oder FALSE falls keiner mehr vorhanden ist.
Gibt das gleiche zurück wie mysql_fetch_array() mit der Konstante MYSQL_ACCOC.
object mysql_fetch_object(resource rs)
Gibt den Datensatz als Objekt zurück, welcher die Feldwerte in Membervariablen mit dem entsprechenden Feldnamen speichert.
integer mysql_insert_id([resource connection])
Liefert den für das auto_increment-Feld vergebene Wert der letzten insert-Anweisung zurück.
string mysql_real_escape_string(string query, [resource connection])
Liefert eine Kopie des Strings query zurück, bei welchem alle Sonderzeichen maskiert wurden.
string mysql_client_encoding([resource connection])
Liefert den Namen des Zeichensatzes zurück, welcher für die Verbindung connection verwendet wird.
integer mysql_errno([resource connection])
Liefert die MySQL-Fehlernummer des letzten Fehlers auf der Verbindung connection zurück.
string mysql_error([resource connection])
Liefert einen beschreibenden Text zum letzten Fehler auf der Verbindung connection zurück.
boolean mysql_data_seek(resource result, integer row)
Setzt den Datensatz-Zeiger des Resultsets result auf row. Die Zählung beginnt bei null, mit $row = 10 wird der Zeiger also auf den 11. Datensatz gesetzt.
string mysql_get_client_info([resource connection])
Liefert eine Beschreibung der von PHP verwendeten MySQL-Client-Bibliothek zurück.
string mysql_get_host_info([resource connection])
Liefert eine Beschreibung der MySQL-Verbindung.
string mysql_get_server_info([recource connection])
Liefert den Versions-String des MySQL-Servers zurück.
string mysql_info([resource connection])
Liefert eine Beschreibung der letzten INSERT-, LOAD DATA INFILE-, ALTER TABLE- oder UPDATE-Abfrage zurück.
boolean mysql_ping([resource connection])
Prüft ob eine Verbindung aktiv ist.
boolean odbc_autocommit(resource connection, boolean on)
Legt fest, ob Transaktionen automatisch akzeptiert werden. Standardwert ist true.
odbc_close(resource connection)
Schliesst alle offenen ODBC-Verbindungen.
resource odbc_connect(string dsn, string user, string password [, integer cursor_type)
Falls die Quelle kein Passwort benötigt, kann man einen leeren string übergeben.integer odbc_exec(resource connection, string query)
Führt eine SQL-Query aus und gibt einen Link auf die Ressource mit den Resultaten zurück.
integer odbc_fetch_into(resource resultset, array fields [, integer row])
Füllt die Felder eines Datensatzes von resultset in den Array fields. row gibt die Nummer des Datensatzes an, wird es weggelassen wird der Datensatzzeiger um 1 nach vorne bewegt.
integer odbc_field_len(resource result, integer field)
Gibt die Länge eines Feldes in einem ResultSet zurück. Die Nummerierung der Felder beginnt mit 1.
string odbc_field_name(resource result, integer field)
Gibt den Namen eines Feldes zurück (Nummmerierung beginnt mit 1)
integer odbc_field_num(recource result, string name)
Gibt die Nummer des Feldes mit dem Namen name zurück.string odbc_field_type(resource result, integer field)
boolean odbc_free_result(resource result)
Gibt den Speicher welcher durch result belegt wird frei.
boolean odbc_next_result(resource result)
Verschiebt den Datensatzzeiger eine Position nach vorne.
integer odbc_num_fields(resource result)
Gibt die Anzahl Felde des ResultSets zurück.
integer odbc_num_rows(resource result)
Gibt die Anzahl Datensätze des ResultSets zurück.
integer odbc_result_all(resource result, string format)
Gibt einen Dump des ResultSets auf der Webseite aus. Der String format wird in des <table>Tag eingefügt, um Attribute zu setzen. Die Anzahl der Datensätze wird zurückgegeben.
boolean odbc_rollback(resource connection)
Macht alle pendenten Transaktionen der entsprechenden Connection rückgängig. Standardmässig werden alle Transaktionen automatisch "commited". Dies kann mit odbc_autocommit() geändert werden. Nicht alle Datenbanken unterstützen Transaktionen.
boolean dl(string extension)
Lädt eine dynamische Erweiterung. Gibt FALSE zurück, falls das Modul nicht geladen werden kann. Der Pfad für diese Module wird in php.ini gesetzt, es muss also nur der Filename angegeben werden (unter Windows .dll- unter UNIX .so-Files). Diese Funktion arbeitet nicht wenn PHP als Module eines multithreading Webservers wie Apache2 betrieben wird.
string ini_get(string directive)
Gibt den Wert einer Konfigurationsdirektive zurück.
array ini_get_all([string extension])
Gibt einen Array mit den aktuellen Konfigurationsdirektiven zurück.