Bisher haben wir einzelne Funktionen kennen gelernt. Nun wird es Funktionen geben, die immer wieder in verschiedenen Projekten benötigt werden könnten. Aus diesen können Funktionsbibliotheken erstellt werden, die sehr einfach in dem entsprechenden Programmteil, in der sie benötigt werden, einfach dazu eingebunden werden.
Das Einbinden geschieht über include bzw. require.
Unterschied zwischen require und include ist, dass falls die einzubindenden Datei nicht existieren sollte, das Programm bei require dann an dieser Stelle abbricht. Dies kann aus sicherheitstechnischen Gründen vorteilhaft sein.
Über Include kann z.B. auch HTML-Bereich eingebunden werden und so das Design einer Datei recht einfach auf jeder Seite übernommen werden (Beispielsweise ein include für den Kopf der Seite, eines für die Steuerung und eins für den Fuß).
Funktionsbibliotheken sollten unbedingt die Endung .php haben, da ansonsten bei Problemen des Webservers die Besucher den Quellcode zu sehen bekommen und unter Umständen durch bestimmte Rückschlüsse dann an Daten kommen, die sie sonst nicht bekommen könnten und auch nicht bekommen sollten.
Die Datei, die per include aufgenommen wird, fängt genauso wie jede PHP-Datei mit <?php an und hört mit ?> auf.
Als kleines Beispiel wird im Folgendem die Funktionsbibliothek zur Ausgabe von Dateigrößen aufgenommen und dann genutzt. Erstellen Sie im ersten Schritt die Datei dateigroessen.php in Ihrem Verzeichnis, in dem Ihr PHP-Programme liegt (wenn Sie es ordentlicher haben möchten, erstellen Sie ein Unterverzeichnis z.B. mit dem Namen inc und packen es dort hinein - beim Inkludieren muss dann das Unterverzeichnis angegeben werden).
Der Inhalt der Datei "dateigroessen.php" ist:
<?php
// Funktionsbibliothek Konvertierungen
function dateigroesse_als( $bytes, $to="" )
{
switch($to)
{
// Kilobit
case 'kbit':
$bytes = ($bytes * 8) / 1024;
$bytes .= " kbit";
break;
// bit
case 'bit' :
$bytes = $bytes * 8;
$bytes .= " bit";
break;
// Gigabyte
case 'GB' :
$bytes = $bytes / 1024 / 1024;
$bytes .= " GB";
// Megabyte
case 'MB' :
$bytes = $bytes / 1024;
$bytes .= " MB";
// Kilobyte
case 'KB' :
$bytes = $bytes / 1024;
$bytes .= " KB";
// byte
default :
}
return $bytes;
}
?>
zum Einbinden der Datei geben Sie nur an:
require ('dateigroessen.php');
oder mit Unterverzeichnis:
require ('inc/dateigroessen.php');
Und nun als kleines Programm mit Namen "test-bibs.php":
require ('dateigroessen.php');
echo dateigroesse_als( 156463, "KB" );