CINXE.COM
EvoComp - PHP Beispiel: Include in PHP - Dateien mit Funktionen oder Klassen einbinden
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>EvoComp - PHP Beispiel: Include in PHP - Dateien mit Funktionen oder Klassen einbinden</title> <meta name="description" content="PHP Function Include - Files aus dem Include-Path (dir) in ein Script einbinden"> <meta name="keywords" lang="de" content="php,include,path,dir,file,require,url"> <meta name="language" content="de"> <meta http-equiv="content-language" content="de"> <meta name="robots" content="index,follow,noarchive"> <meta name="date" content="2008-12-01"> <meta name="DC.Date" content="2008-12-01"> <base href="http://www.evocomp.de/beispiele/php/include.html"> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <meta name="author" content="Alexander Müller"> <meta name="DC.Creator" content="Alexander,Müller"> <meta name="DC.Publisher" content="Alexander,Müller"> <meta name="DC.Contributor" content="Alexander,Müller"> <meta name="DC.Type" content="Text"> <meta name="DC.Format" content="text/html"> <meta name="DC.Identifier" content="http://www.evocomp.de/"> <meta http-equiv="expires" content="0"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="icon" href="/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="/portal.css"> <script src="/portal.js" type="text/javascript"></script> <meta name="revisit-after" content="15 days"> <meta http-equiv="pragma" content="no-cache"> <meta name="audience" content="Alle"> </head> <body> <a id="top" name="top"><img class="transparent" border="0" name="icount" src="/pic/transparent.gif" alt=""></a> <script language="javascript" type="text/javascript"> <!-- // hide from older browsers frameCheck (); document.getElementsByName ("icount") [0].src = "/pic/transparent.gif?" + Math.random (); // --> </script> <a href="/" title=""><img class="logo" border="0" src="/pic/logo_evocomp.jpg" alt=""></a> <p class="banner"> <a href="http://www.kunstundreisen.de" rel="nofollow" title="" target="_blank"><img border="0" src="http://www.kunstundreisen.de/mehr/verlinkung/grafiken/kunstundreisen_468_60.gif" width="468" height="60" alt=""></a> <img border="0" src="/pic/ad.gif" alt=""> </p> <div id="container"> <ul id="topmenu"> <li><a href="/index.html" title="Startseite">Home</a></li> <li><a href="/sitemap.html" title="Seitenstruktur">Sitemap</a></li> <li><a href="/contact.html" title="Kontakt">Kontakt</a></li> <li><a href="/imprint.html" title="Impressum">Impressum</a></li> </ul> <div id="contentcontainer"> <div id="breadcrumb">Sie sind hier: <a href="/index.html" title="Startseite">Home</a> :: <a href="/beispiele/beispiele.html" title="Beispiele Script">Beispiele</a> :: <a href="/beispiele/php/php.html" title="PHP Beispiele">PHP</a> :: <a href="/beispiele/php/include.html" title="Include in PHP">Include / Require</a> </div> <div id="sample"> <ul> <li>Beispiele</li> <li><a href="/beispiele/php/array.html" title="array php">» array</a></li> <li><a href="/beispiele/php/date.html" title="date php">» date</a></li> <li><a href="/beispiele/php/echo.html" title="echo php">» echo</a></li> <li><a href="/beispiele/php/explode.html" title="explode php">» explode</a></li> <li><a href="/beispiele/php/file-datei.html" title="file php">» file</a></li> <li><a href="/beispiele/php/implode.html" title="implode php">» implode</a></li> <li><a href="/beispiele/php/isset.html" title="isset php">» isset</a></li> <li><a href="/beispiele/php/split.html" title="split php">» split</a></li> <li><a href="/beispiele/php/string.html" title="string php">» string</a></li> <li><a href="/beispiele/php/substr.html" title="substr php">» substr</a></li> <li><a href="/beispiele/php/trim.html" title="trim php">» trim</a></li> <li><a href="/beispiele/php/unset.html" title="unset php">» unset</a></li> <li>Sprache</li> <li><a href="/beispiele/php/for.html" title="for php">» for</a></li> <li><a href="/beispiele/php/foreach.html" title="foreach php">» foreach</a></li> <li><a href="/beispiele/php/function.html" title="function php">» function</a></li> <li><a href="/beispiele/php/if.html" title="if php">» if</a></li> <li><a href="/beispiele/php/try-catch.html" title="try catch php">» try ... catch</a></li> <li><a href="/beispiele/php/variable.html" title="variable php">» Variable</a></li> <li><a href="/beispiele/php/while.html" title="while php">» while</a></li> <li>Sonstiges</li> <li><a href="/beispiele/php/header.html" title="header php">» Header</a></li> <li><a href="/beispiele/php/html.html" title="html php">» HTML & PHP-Code</a></li> <li><a href="/beispiele/php/include.html" title="include php">» Include</a></li> <li><a href="/beispiele/php/ip.html" title="ip php">» IP-Adresse</a></li> <li><a href="/beispiele/php/mail.html" title="mail php">» Mail / eMail</a></li> <li><a href="/beispiele/php/random.html" title="random php">» random</a></li> <li><a href="/beispiele/php/redirect.html" title="redirect php">» Redirect</a></li> </ul> </div> <h1 class="notopmargin">Files per Include in ein PHP-Script einbinden</h1> <p class="norm"> Mittels der PHP-Anweisung include besteht die Möglichkeit Script-Code, der in verschiedenen Dateien verteilt abgelegt ist, in eine Webanwendung einzubinden. Die stetig wachsende Komplexität von Webservices führt zu immer umfangreicheren Scripten, die zur Durchführung der angestrebten Funktionalitäten programmiert werden müssen. Dabei hat der Programmierer stets die Wahl, ob er alle Funktionen in einer einzelnen Datei ablegt oder diese gruppiert in einzelnen Dateien unterbringt und bei Bedarf einbindet. Letzteres ist insbesondere dann praktisch, wenn die Übersichtlichkeit des Codes unter einer großen Fülle an Funktionen und Klassen leidet. Meist werden Funktionen, die logisch zusammengehörige Aufgaben erfüllen in speziellen Dateien abgelegt und immer dann einbezogen, wenn auf diese Funktionen zugegriffen werden soll. Darüber hinaus legt man auch Klassen in Dateien mit entsprechend bezeichnendem Namen ab, da sie eine logische Einheit bilden. Hierdurch wird neben der Auffindbarkeit auch die Wartbarkeit des Codes verbessert. </p> <h2>Include Path Beispiel: Absolute und relative Pfadangaben</h2> <p class="norm"> Das Einbinden von <a href="/beispiele/php/php.html" title="PHP Code und HTML">PHP-Code</a> in ein Script kann mittels der Anweisung include erfolgen. Aufgerufen wird die include-Anweisung mit einem Parameter, der angibt, welche Datei eingebunden werden soll. Ob der Parameter beim Aufruf von include geklammert angegeben wird oder nicht ist Geschmackssache. Der Name der einzubindenden Datei kann sowohl mit als auch ohne Pfadangabe notiert werden. Fehlt eine Pfadangabe, so wird die Datei in den Standard-Include-Verzeichnissen gesucht, die in der Konfigurationsvariablen include_path festgelegt sind. Im aktuellen Verzeichnis wird nur dann gesucht, wenn der in Form eines Strings gespeicherte Include-Path (auch include dir genannt, wobei letzteres für include directory steht) auch das aktuelle Verzeichnis – repräsentiert durch ein '.' – einbezieht. Die einzelnen Pfade werden auf Unix-Systemen durch Doppelpunkte, auf Windows-Rechnern dagegen durch Semikolons getrennt. </p> <p class="norm"> Die Vorbelegung des include_path erfolgt durch die PHP Konfigurationsvariable PHP_INCLUDE_PATH, die entweder in der Konfigurationsdatei php.ini oder in der Webserver-Konfiguration – in httpd.conf oder .htaccess – eingestellt werden kann. Innerhalb des Script-Codes kann der Include-Path nicht mehr verändert werden. Bei Angabe eines absoluten Pfades ist darauf zu achten, dass die Dateien – anders als der beim FTP-Upload gewählte Speicherort vermuten lässt – nicht im Hauptverzeichnis abgelegt sind, sondern in einem für die Website vorgesehenen (virtuellen) Webserver-Rootverzeichnis. Das Rootverzeichnis wird widerum in den Konfigurationsdateien httpd.conf bzw. .htaccess unter dem Namen open_basedir angegeben. Im PHP-Script kann dann der Zugriff auf diesen Wert mittels der vordefinierten Variable $_SERVER unter dem <a href="/beispiele/php/array.html" title="">Array</a> Index 'DOCUMENT_ROOT' erfolgen. </p> <div class="code2"> <pre><span class="code_type"><?php</span> <span class="code_comment">// Datei ohne Angabe eines Pfades einbinden</span> <span class="code_comment">// Gesucht wird die Datei in allen Verzeichnissen, die im include_path</span> <span class="code_comment">// enthalten sind.</span> include (<span class="code_string">'datei1.php'</span>); <span class="code_comment">// aber auch folgende Schreibweise ist möglich</span> include <span class="code_string">'datei1.php'</span>; <span class="code_comment">// Dateien mit relativem Pfad einbinden:</span> <span class="code_comment">// - Datei liegt im selben Verzeichnis, wie das einbindende Script</span> include <span class="code_string">'./datei1.php'</span>; <span class="code_comment">// - Hier liegt das File im Unterverzeichnis includes</span> include <span class="code_string">'./includes/datei1.php'</span>; <span class="code_comment">// - Oder eine Verzeichnisebene höher</span> include <span class="code_string">'../datei1.php'</span>; <span class="code_comment">// Files mit absoluter Pfadangabe einbinden</span> <span class="code_comment">// - Die Datei liegt tatsächlich im Verzeichnis /system/</span> include <span class="code_string">'/system/datei1.php'</span>; <span class="code_comment">// - Absolute Pfadangabe aufbauend auf dem Wurzelverzeichnis des Webservers</span> include $_SERVER[<span class="code_string">'DOCUMENT_ROOT'</span>] . <span class="code_string">'/includes/datei1.php'</span>; <span class="code_type">?></span> </pre> </div> <h2>Require Files Beispiel: Zwingend vorhandenes Config File einbinden</h2> <p class="norm"> Neben include bietet der Befehl require einen weiteren Mechanismus zur Integration von extern gespeichertem PHP-Code. Der Unterschied zu include besteht darin, dass die Ausführung des Scripts umgehend mit einer Fehlermeldung abgebrochen wird, wenn der Zugriff auf die einzubindende Datei fehl schlägt. Im Gegensatz dazu wird die Verarbeitung des Scripts bei Verwendung von include nicht abgebrochen. Hier erfolgt lediglich die Ausgabe einer Fehlermeldung, die das Fehlen der einzubindenden Datei moniert. </p> <div class="code2"> <pre><span class="code_type"><?php</span> <span class="code_comment">// Zwingend erforderliche Konfigurationsdatei, die sich im selben Verzeichnis</span> <span class="code_comment">// befindet, einbinden.</span> require <span class="code_string">'./config.php'</span>; <span class="code_comment">// Weiterer Code, der die in config.php definierten Variablen, Klassen und</span> <span class="code_comment">// Funktionen verwendet</span> : : <span class="code_type">?></span> </pre> </div> <h2>Include HTML Beispiel: Integration von HTML- oder Textdateien</h2> <p class="norm"> Mittels include oder require kann nicht allein zu interpretierender PHP-Code eingebunden werden. Auch HTML-Dateien die beispielsweise Templates (fertig formatierte HTML-Blöcke) enthalten können in ein PHP-File eingebunden werden. Diese HTML-Files werden, ebenso wie Textdateien, an der entsprechenden Stelle und so wie sie in der Datei abgelegt sind ausgegeben, da sie aufgrund ihres Dateityps – zumindest mit den Standardeinstellungen des Webservers – nicht vom PHP-Interpreter verarbeitet werden. </p> <div class="code2"> <pre><span class="code_type"><?php</span> <span class="code_comment">// Konstanten Seitenheader einbinden und ausgeben</span> include <span class="code_string">'header.html'</span>; <span class="code_comment">// PHP-Code, der die benötigten Aufgaben erfüllt</span> <span class="code_comment">// und dabei den entsprechenden Seiteninhalt erstellt.</span> : : <span class="code_comment">// Footer-Template ausgeben</span> inclide <span class="code_string">'footer.html'</span>; <span class="code_type">?></span> </pre> </div> <h2>Include_once und Require_once</h2> <p class="norm"> Include und require gibt es in einer weiteren Variante, die sicher stellt, dass Dateien nur ein einziges Mal in ein Script eingebunden werden. Zu diesem Zweck nutzt man die Befehle include_once bzw. require_once. Beide unterscheiden sich nur durch den Umstand, dass Dateien – wie der Name schon sagt – nur ein einziges mal geladen und geparst bzw. ausgeführt werden, von ihren Varianten ohne den Suffix _once. Wenn also eine Datei von mehreren Dateien eingebunden wird und dies jeweils mittels require_once oder include_once geschieht, dann wird das File nur einmal eingelesen und geparst. Nutzt der Entwickler statt dessen die Varianten ohne _once, so wird an jeder Stelle, an der eine Datei eingebunden wird auch der Parser bemüht, was unnötig Speicher und Rechenzeit verbraucht. Falls im eingebundenen File nicht nur Funktionen und Klassen definiert werden sondern auch Code ausgeführt wird, führt dies auch zu einer mehrfachen Ausführung des enthaltenen Codes. </p> <div class="code2"> <pre><span class="code_type"><?php</span> <span class="code_comment">// Datei nur einlesen, wenn dies nicht schon an anderer Stelle geschehen ist</span> include_once <span class="code_string">'./datei1.php'</span>; <span class="code_comment">// Einbinden wie zuvor mit Abbrechen des Scripts, wenn Datei nicht vorhanden</span> require_once <span class="code_string">'./datei1.php'</span>; <span class="code_type">?></span> </pre> </div> <h2>HTTP-Include Beispiel: Dateien über URL einbinden</h2> <p class="norm"> Unter PHP können Dateien nicht nur aus dem lokalen Dateisystem eingebunden werden. Auch per URL erreichbare Dateien können bei Bedarf mit include, require und deren Once-Varianten in eine Seite integriert werden. Voraussetzung hierfür ist allerdings, dass in der Serverkonfiguration die Direktive allow_url_fopen mit dem Wert 1 belegt ist. Normalerweise ist dies der Fall, allerdings sollte die Option aus Sicherheitsgründen deaktiviert werden. </p> <div class="code2"> <pre><span class="code_type"><?php</span> <span class="code_comment">// Datei, die durch einen HTTP-Request geliefert wird, in die Ergebnisseite</span> <span class="code_comment">// einbinden</span> include <span class="code_string">'http://www.evocomp.de/service/news.php'</span>; <span class="code_comment">// Webservice mit GET Parametern abrufen und in die Seite einbauen</span> inclide <span class="code_string">'http://www.evocomp.de/service/news.php?year=2008&month=06'</span>; <span class="code_type">?></span> </pre> </div> </div> <div id="left"> <div class="containerblock"> <p class="title">¬ Menu</p> <ul class="content"> <li><a href="/themen/evolutionsalgorithmen/evoalg.html" title="Evolutionäre Algorithmen">» Evolutionsalgorithmen</a></li> <li><a href="/softwareentwicklung/software-entwicklung.html" title="Software-Entwicklung">» Softwareentwicklung</a></li> <li><a href="/tutorials/tutorial.html" title="Tutorials / Tutorien">» Tutorials</a></li> <li><a href="/scripts/skripte.html" title="Free Scripts / Gratis Skripte Download">» Scriptarchiv</a></li> <li><a href="/beispiele/beispiele.html" title="Beispiele Scripts">» Beispiele</a></li> <li><a href="/beispiele/javascript/javascripts.html" title="JavaScripts / JavaScript Beispiel"> » JavaScript</a></li> <li><a href="/beispiele/php/php.html" title="PHP Script"> » PHP</a></li> <li><a href="http://forum.evocomp.de/" target="_blank" title="Forum Webentwicklung / Webprogrammierung">» Forum</a></li> <li><a href="/historie/historie.html" title="Historie">» Historie</a></li> <li><a href="/glossar/glossar.html" title="Glossar">» Glossar</a></li> <li><a href="/links/links.html" title="Links">» Links</a></li> <li><a href="/literatur/literatur.html" title="Literatur">» Literatur</a></li> <li><a href="/visitenkarte/index.html" title="Visitenkarte" target="_blank">» Visitenkarte</a></li> </ul> </div> <div class="containerblock"> <p class="title">¬ Gratis Download</p> <ul class="content"> <li><a href="/scripts/java-script-download/java-script-galerie/javascript-galerie.html" title="html bildergalerie">Web Galerie</a></li> <li><a href="/scripts/php-scripts-download/php-bilder-galerie/php-photo-galerie.html" title="dynamische bildergalerie">PHP Bildergalerie</a></li> <li><a href="/scripts/php-scripts-download/php-counter-class/php-counter-script.html" title="homepage counter">Besucherzähler</a></li> <li><a href="/scripts/java-script-download/java-script-fontsize/javascript-fontsize.html" title="schriftgröße html">Schriftgröße</a></li> </ul> </div> <div class="containerblock"> <p class="title">¬ Tutorials</p> <ul class="content"> <li><a href="/tutorials/tutorium_php_mysql/howto_php_mysql_tutorial.html" title="php mysql tutorium">PHP MySQL Tutorial</a></li> </ul> </div> <div class="containerblock"> <p class="title">¬ Seminare</p> <ul class="content"> <li><a href="/beispiele/javascript/seminar-schulung-kurs-lernen.html" title="JavaScript Einführung">JavaScript Seminar</a></li> <li><a href="/beispiele/php/lernen-kurs-schulung-seminar.html" title="PHP Schulung">PHP Seminar</a></li> </ul> </div> <br/><br/> <div class="containerblock"> <p class="title">¬ Yoga</p> <ul class="content"> <li><a href="/yoga/deutschland/yoga-koeln.html" title="Yoga in Köln">Yoga Köln</a></li> <li><a href="/yoga/hatha-yoga.html" title="Hatha Yoga Köln">Hatha Yoga</a></li> <li><a href="/yoga/buecher/yoga-buch.html" title="Yoga Buch">Yoga Bücher</a></li> </ul> </div> <div class="containerblock"> <p class="title">¬ Insolvenzrecht</p> <ul class="content"> <li><a href="/insolvenz/insolvenzrecht-buch.html" title="Insolvenzrecht Buch">Literatur Insolvenzrecht</a></li> </ul> </div> </div> <div id="right"> <div class="containerblock"> <p class="title">¬ News</p> <p class="content"> <span class="latest_news_date">15.08.2008</span><span class="latest_news">Schleifen in PHP: Die While-Schleife <a href="/news/15_08_2008.html" title="Meldung vom 15.08.2008">» mehr</a></span> <span class="latest_news_date">13.08.2008</span><span class="latest_news">Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen <a href="/news/13_08_2008.html" title="Meldung vom 13.08.2008">» mehr</a></span> <span class="latest_news_date">11.08.2008</span><span class="latest_news">Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String <a href="/news/11_08_2008.html" title="Meldung vom 11.08.2008">» mehr</a></span> <span class="news_liste_hinweis">Eine vollständige News-Liste ist auf der <a href="/news/news.html" title="News Seite">News-Seite</a> zugänglich.</span> </p> </div> <div class="containerblock"> <p class="title">¬ Foren</p> <ul class="content"> <li> <div style="display:inline;float:right;width:130px;"> <a href="http://forum.evocomp.de/f7/" target="_blank" title="JavaScript Hilfe">JavaScript Forum</a><br> <a href="http://forum.evocomp.de/f8/" target="_blank" title="PHP Hilfe">PHP Forum</a><br> </div> <img width="48" height="48" src="/pic/forum_icon.gif" alt="Foren" /> </li> </ul> </div> <div class="containerblock"> <p class="title">¬ Buchtipp</p> <p class="content"> <span class="book"><a href="http://ad.zanox.com/ppc/?5685652C554664482T&ULP=[[12521263]]" rel="nofollow" title="" target="_blank"><img border="0" src="http://bilder.buecher.de/produkte/12/12521/12521263k.jpg" alt="" /><br />PHP 5, Grundlagen und Profiwissen, m. CD-ROM</a><br /></span> <span class="book"><hr /> Weitere PHP Bücher finden Sie unter <a href="/beispiele/php/buecher.html" title="">PHP Literatur</a> </span> </p> </div> </div> </div> <div id="copyright"> <script language="javascript" type="text/javascript"> <!-- // hide from older browsers var emadr = mkEmAdr (1); document.write ("© 2004-2024 <a href=\"" + emadr + "\" title=\"E-Mail an Alexander Müller\">" + "Alexander Müller<\/a>"); // --> </script> <noscript> © 2004-2024 Alexander Müller<br> <a href="http://call-center.evocomp.de" title="">Call Center Central</a> </noscript> <br><a href="http://www.EvoComp.de" title="Homepage von www.EvoComp.de">www.EvoComp.de</a><br> Letzte Änderung: 01.12.2008 <p> <img border="0" src="/pic/valid-html4.01.png" width="80" height="15" alt="Valid HTML 4.01!" title="Valid HTML 4.01!"> <img border="0" src="/pic/valid-css.png" width="80" height="15" alt="Valid CSS!" title="Valid CSS!"> <br><br> <a href="http://www.gadgets4web.net/service/internet-shop.html" title="Internetshop erstellen, Köln">Onlineshop erstellen</a> • <a href="http://www.gadgets4web.net" title="Internet: Service, Webdesign, Webprogrammierung in Köln">Internetagentur</a> • <a href="http://www.gadgets4web.net/service/web-entwicklung.html" title="Webprogrammierung Köln">Webprogrammierung</a> </p> </div> </body> </html>