Funktionsbibliotheken erstellen und recyceln

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-Quellcode: Beispiel Funktionsbibliothek dateigroessen.php
<?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:

PHP-Quellcode: Funktionsbibliothek einbinden
<?php
require ('dateigroessen.php');
?>

oder mit Unterverzeichnis:

PHP-Quellcode: Funktionsbibliothek aus Unterverzeichnis einbinden
<?php
require ('inc/dateigroessen.php');
?>

Und nun als kleines Programm mit Namen "test-bibs.php":

PHP-Quellcode: Beispielanwendung eingebundene Funktionsbibliothek
<?php
require ('dateigroessen.php');
echo dateigroesse_als( 156463, "KB" );
?>