spitzen-infos.de - PHP

PHP




Wikipedia http://de.wikipedia.org/wiki/Hauptseite MediaWiki 1.6alpha first-letter Media Spezial Diskussion Benutzer Benutzer Diskussion Wikipedia Wikipedia Diskussion Bild Bild Diskussion MediaWiki MediaWiki Diskussion Vorlage Vorlage Diskussion Hilfe Hilfe Diskussion Kategorie Kategorie Diskussion Portal Portal Diskussion PHP 4165 move=:edit= 14013270 2006-02-24T12:55:45Z 84.165.154.83 Alphabetische Sortierung {{Infobox_Software| Name=PHP |Screenshot= |Beschreibung= Serverseitig interpretierte Skriptsprache |Hersteller= The PHP Group |AktuelleVersion=5.1.2 ([[12. Januar]] [[2006]])
4.4.2 |AktuelleVersionFreigabeDatum=[[13. Januar]] [[2006]] |Betriebssystem= [[Linux]], [[Mac OS X]], [[Microsoft Windows|Windows]] uvm. |Kategorie= [[Skriptsprache]] |Lizenz= [[PHP-Lizenz]] |Deutsch= nein |Website= [http://www.php.net/ www.php.net] }} '''PHP''' ([[rekursives Akronym]] für „'''P'''HP: [[Hypertext|'''H'''ypertext]] [[Präprozessor|'''P'''reprocessor]]“, ursprünglich „'''P'''ersonal [[Homepage|'''H'''ome '''P'''age]] Tools“) ist eine [[Skriptsprache]] mit einer an [[Java (Programmiersprache)|Java]] bzw. [[Perl]] angelehnten [[Syntax]], die hauptsächlich zur Erstellung [[Webseite|dynamischer Webseiten]] oder ganzer [[Webanwendung|Webanwendungen]] verwendet wird. Bei PHP handelt es sich um [[Open Source|Open-Source]]-Software. PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite [[Datenbank]]unterstützung und [[Netzwerkprotokoll|Internet-Protokolleinbindung]] sowie die Verfügbarkeit zahlreicher, zusätzlicher [[Funktionsbibliothek]]en aus. Es existieren zum Beispiel [[Bibliothek (Programmierung)|Bibliotheken]], um Bilder und Grafiken zur Einbindung in Webseiten dynamisch zu generieren. ==Allgemein== [[Bild:PHP_funktionsweise.png|thumb|800px|left|Darstellung der Funktionsweise von PHP]]
PHP ist eine [[server]]seitig interpretierte Sprache. Das bedeutet, dass der [[Quelltext]] – im Gegensatz zu [[JavaScript]], welches in der Regel [[client]]seitig ausgeführt wird – nicht an den [[Browser]] übermittelt wird, sondern an einen [[Interpreter]] auf dem [[Webserver]]. Erst dessen Ausgabe wird an den Browser geschickt. In den meisten Fällen ist dies ein [[HTML]]-Dokument, wobei es mit PHP aber auch möglich ist, andere [[Datentyp]]en, wie z. B. Bilder oder [[PDF]]-Dateien, zu generieren. Mit PHP lassen sich auch Skripte, die nichts mit dem [[WWW]] zu tun haben (ebenso wie beispielsweise mit [[Perl]]), schreiben. Mit einer [[GIMP-Toolkit|GTK-Erweiterung]] kann sogar eine grafische Oberfläche hinzugefügt werden. Hierfür wird weder ein Webserver noch ein Browser benötigt. Verglichen mit "Allzweck"-Skriptprachen wie [[Python (Programmiersprache)|Python]] und Perl sind die Schnittstellen für die grafische Oberfläche und zu anderen Betriebssystemfunktionen aber spärlich und werden kaum verwendet. PHP spielt seine Stärken vor allem beim Einsatz auf Webservern aus. Um eine PHP-Datei im Rahmen einer [[Webanwendung]] ausführen zu können, benötigt man ein System, das mit den in der Datei enthaltenen Anweisungen umzugehen weiß. Aus diesem Grund wird durch eine Schnittstelle (beispielsweise [[ISAPI]] oder [[Common Gateway Interface|CGI]]) der Interpreter von einem Server[[daemon]] bzw. Serverdienst (in der Regel [[Apache_HTTP_Server|Apache]] oder [[IIS]]) ausgeführt. Die auf WWW-Servern übliche Kombination von [[Linux]]/[[Windows]] als [[Betriebssystem]], Apache als Webserver, [[MySQL]]-Server als Datenbank und PHP wird [[LAMP]] bzw. [[WAMP]] genannt. Fertige LAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von [[Paket]]en aus dem WWW unnötig machen, werden im Projekt [[XAMPP]] entwickelt, wobei es inzwischen Versionen für [[Linux]], [[Solaris (Betriebssystem)|Solaris]], [[Windows]] und [[Mac OS X]] gibt. Die Vorteile der serverseitigen Ausführung sind, dass beim [[Client]] (Browser) keine speziellen Fähigkeiten erforderlich sind oder Inkompatibilitäten auftreten können, wie es beispielsweise bei JavaScript und den verschiedenen Browsern der Fall ist. Außerdem bleibt der PHP-[[Quelltext]] der Seite auf dem Server und nur die generierten [[Daten]] sind für den Besucher einsehbar. Gleiches gilt für andere [[Ressource]]n wie z. B. [[Datenbank]]en, die daher auch keine direkte Verbindung zum Client benötigen. Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann. Da PHP normalerweise in einer Webserverumgebung läuft, unterliegt es auch dem zustandslosen [[HTTP]] (allerdings wirkt PHP mit seinem [[Sitzung_(Informatik)|Sessionmechanismus]] dagegen an). Außerdem wird jede PHP-Seite vom [[Server]] interpretiert, wodurch dessen Belastung steigt. Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei grundsätzlich jeder [[Webanwendung]] auf. Zusätzlich liest, prüft und übersetzt der Interpreter den Quelltext bei jedem Aufruf erneut. Dies mindert die Reaktionsgeschwindigkeit des Servers und erhöht nochmals die Auslastung. Um dem entgegen zu wirken, wurde eine Erweiterung namens MMCache entwickelt. Diese speichert eine zur Ausführung vorbereitete Version des Programms zwischen und beschleunigt somit den Zugriff auf diese Datei beim nächsten Aufruf. Der MMCache wird inzwischen nicht mehr weiterentwickelt, seine Stelle nimmt der Nachfolger eAccelerator ein. == Mängel == PHP ist zeitweise etwas ungesteuert gewachsen. So funktioniert der Zugriff auf eine Datenbank mittels der [[MySQL]]-Funktionen anders als über [[ODBC]]; noch deutlicher wird dies beispielsweise bei Inkonsistenzen der Funktionen zur [[String]]-Verarbeitung. Zwar besitzt PHP bereits seit Version 3 grundlegend die Funktionalität, um [[Objektorientierte Programmiersprache|objektorientiertes]] Programmieren zu unterstützen (diese wurden sowohl in Version 4 als auch in Version 5 verbessert und erweitert), aber die gesamte Standardbibliothek von PHP 4 und der Großteil derer von PHP 5 ist noch [[Funktionale_Programmiersprache|prozedural]] angelegt. Auch bei objektorientierten Sprachen übliche Features wie [[Kapselung]] der Daten (z. B. private Variablen), [[Destruktor]]en oder Fehlerbehandlung per [[Exception]]s sind erst in PHP 5 hinzugekommen. Die Funktionen register_shutdown_function(), set_error_handler() und error_reporting() in PHP 4 können diese wichtigen Sprachkonstrukte nicht wirklich ersetzen. Die aktuelle Version, mit der neuen [[Zend Engine]] 2, ist seit dem 13. Juli 2004 PHP 5. Um die Missstände aus der vorherigen Version zu beheben, wurden Änderungen am Verhalten von PHP selbst nötig. So sind Objekt-Variablen in PHP 5 wie bei den meisten Sprachen nur noch eine [[Referenz (Programmierung)|Referenz]] auf das Objekt und nicht wie in PHP 3 und 4 das Objekt selbst. In PHP 5 wurden außerdem wichtige [[OOP]]-Features wie z. B. [[Destruktor]]en und die Festlegung der Sichtbarkeit einer (Klassen-)Eigenschaft (public, private oder protected) ergänzt. Einige wichtige Teile der Standardbibliothek wie z. B. die [[Document Object Model|DOM]]-[[Programmierschnittstelle|API]] sind seit PHP 5 objektorientiert. In PHP 5.1 wurde mit PHP Data Objects (PDO) eine neue, objektorientierte Erweiterung aufgenommen, die einen einheitlichen Zugriff auf die verschiedenen SQL-Datenbanken ermöglicht. Bemängelt wird aber noch immer der auch in der Version 5 unzureichende Support von [[Unicode]]. Bisher bietet PHP nur einige Funktionen, bei denen ein Zeichensatz (darunter auch [[UTF-8]]) angegeben werden kann, sowie Funktionen zur Konvertierung von und nach UTF-8, aber noch keine durchgehende Unterstützung. Für viele Probleme sorgen auch die "magic quotes"- und "autoglobals"-Mechanismen, die je nach Serverkonfiguration aktiviert oder deaktiviert sind. Ursprünglich waren sie als Bequemlichkeits-Feature und zusätzliches "Sicherheitsnetz" für Anfänger gedacht, aber ein portables Skript muss mit allen möglichen Konfigurationen umgehen können, wodurch sich der Effekt ins Gegenteil verkehrt. Siehe dazu auch die englischsprachige PHP-Dokumentation (http://php.net/magic_quotes). Um mit diesem Missstand aufzuräumen, kündigte [[Andi Gutmans]] umfassende [[Unicode]]-Unterstützung auf Basis von [[ICU (Typographie)|ICU]] für die nächste große Version (6.0) an, die für das dritte Quartal 2006 geplant ist. In der [http://www.gravitonic.com/downloads/talks/intlphpcon2005/php_unicode.pdf Präsentation von Andrei Zmievski] von der PHP-Conference 2005 wird die Implementierung anhand vieler Beispiele erklärt. Unter anderem werden Konstrukte wie strlen($str) oder $str{1} problemlos mit [[Unicode]] funktionieren. Eine Diskussion über möglich Änderungen in PHP 6 findet sich auf der Mailingliste php.internals (http://news.php.net/php.internals/17883 englischsprachig). == Geschichte == PHP wurde [[1995]] von [[Rasmus Lerdorf]] entwickelt. Der Begriff stand damals noch für '''P'''ersonal '''H'''ome '''P'''age Tools und war ursprünglich eine Sammlung von [[Perl]]-Skripten, die von [[Rasmus Lerdorf]] zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben wurden. Bald schrieb Lerdorf jedoch eine größere Umsetzung in C, worin PHP auch heute noch geschrieben ist. Das schließlich veröffentlichte PHP/FI (FI stand für '''F'''orm '''I'''nterpreter) war Perl sehr ähnlich, wenn auch viel eingeschränkter, einfacher, und ziemlich inkonsistent. PHP 3 wurde von [[Andi Gutmans]] und [[Zeev Suraski]] neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für [[eCommerce]] zu schwach war. Auch die Bedeutung der [[Abkürzung]] „PHP“ wurde hierbei geändert. Lerdorf kooperierte mit Gutmans und Suraski und so wurde die Entwicklung von PHP/FI eingestellt. Die von Gutmans und Suraski gegründete Firma [[Zend Technologies Ltd.]] entwickelte in der Folge die Zend Engine 1, die das ''Herz'' von PHP 4 darstellt. Da das [[World Wide Web]] Ende der [[1990er]] Jahre stark wuchs, bestand großer Bedarf an Skriptsprachen, mit denen sich dynamische Webseiten realisieren lassen. PHP wurde mit der Zeit populärer als der vorherige De-facto-Standard [[Perl]], welches mit der extrem leichten Erlernbarkeit von PHP nicht konkurrieren konnte. === Meilensteine === * PHP 1.0 erschienen am [[8. Juni]] [[1995]] * PHP 2.0.0 bzw. PHP/FI, erschienen am [[12. November]] [[1997]] * PHP 3.0.0, erschienen am [[6. Juni]] [[1998]] * PHP 4.0.0, erschienen am [[22. Mai]] [[2000]] ** Einfache [[Objektorientierte Programmierung]] hinzugefügt ** Sessions hinzugefügt * PHP 5.0.0, erschienen am [[13. Juli]] [[2004]] ** Erstmals ist durch viele hinzugefügte Sprachkonstrukte ernsthaftes objektorientiertes Programmieren möglich. ** Exceptions hinzugefügt * PHP 5.1, erschienen am [[24. November]] [[2005]] ** Datenbankabstraktionsschicht hinzugefügt == Code-Beispiel == Einfaches PHP-Script: Script in HTML integriert: Hallo Welt! == Lizenz und Bezug == PHP 3 wurde unter der [[GPL|GNU General Public License]] vertrieben. Seit Version 4 wird PHP unter der [[PHP License]] vertrieben, einer [[Lizenz|Softwarelizenz]], die die freie Verwendung und Veränderung der [[Quelltext]]e erlaubt. Die Software kann somit kostenlos aus dem Internet geladen werden; daneben ist PHP auch schon bei einigen [[Betriebssystem]]en (z. B. bei allen relevanten [[Linux]]-[[Distribution (Software)|Distribution]]en oder [[Mac OS X]]) im Lieferumfang enthalten. Seit dem 13. Juli 2004 liegt PHP in der komplett überarbeiteten Version 5 vor. == Performance == Da es sich bei PHP um eine [[Skriptsprache]] handelt, wird diese bei jedem Aufruf neu [[Interpreter|interpretiert]]. Dies führt bei umfangreichen Projekten schnell zu Performanceeinbrüchen. Abhilfe kann hier ein Vorinterpretieren mittels eines [[Opcode|Op-Code]] [[Cache]]s sein. Da dies bei PHP im Gegensatz zu [[Java (Programmiersprache)|Java]] nicht standardmäßig vorgesehen ist, muss man existierende Caches von Hand einbinden. Beispiel für diese Caches sind Turck-mmCache und dessen Nachfolger [[eAccelerator]], der IonCube-Accelarator (alles [[Open Source]] und [[Freeware]]) sowie der kommerzielle Zend Optimizer. Eine höhere Performance erreicht PHP durch den Einsatz von [[Modul_(Software)|Servermodulen]] (z.B. beim [[Apache_HTTP_Server|Apache]]). Da nicht bei jedem Skriptaufruf eine neue Instanz des Interpreters gestartet werden muss, kann der Code schneller übersetzt werden. == Verbreitete PHP-Applikationen == Es gibt verschiedene, sehr weit verbreitete Applikationen, die in PHP geschrieben wurden. Hier eine kleine Auswahl: * ''[[Woltlab Burning Board|wBB]]'', ''[[vBulletin]]'' und ''[[phpBB]]'' – [[Webforum|Foren]]-[[Software]] * ''[[phpMyAdmin]]'' – grafische Benutzeroberfläche zur Verwaltung von [[MySQL]]-Datenbanken * ''[[PHPNuke|PHP-Nuke]]'' – [[Webportal|Portal]]-[[Software]] * ''[[PostNuke]]'', ''[[TYPO3]]'', ''[[Mambo (CMS)|Mambo]]'' / ''[[Joomla!]]'' und ''[[Contenido]]'', ''[[Der Dirigent]]'' – [[Content-Management-System]]e (CMS) * ''[[WordPress]]'', ''[[Serendipity (Weblog)|Serendipity]]'' – Software für das Erstellen von [[Weblog]]s Auch die [[Wikipedia]] basiert auf einer in PHP geschriebenen Applikation, dem [[Hilfe:MediaWiki|MediaWiki]]. == Literatur == Es sollte immer beachtet werden, dass gedruckte Werke zu PHP aufgrund der permanenten Weiterentwicklungen von PHP sehr schnell veralten. Die aktuellen Informationen und Dokumentationen findet man immer unter der [http://www.php.net offiziellen Website www.php.net]. * Matthias Kannengiesser: ''PHP 5 / MySQL 4, Studienausgabe''. Franzis Verlag, ISBN 3-7723-7005-5 * George Schlossnagle: ''Professionelle PHP 5-Programmierung''. Addison-Wesley, ISBN 3-8273-2198-0 * Jörg Krause: ''PHP 5, Grundlagen und Profiwissen''. Hanser Fachbuchverlag, 2. Auflage, ISBN 3-446-40334-5 * Jens Ferner: ''PHP 5 Referenz''. Data Becker, ISBN 3-8158-2369-2 * R. Samar (Hrsg.), C. Stocker (Hrsg.), A. Gildemeister et al., "PHP de Luxe - PHP5 Edition". mitp-Verlag, ISBN 3-826614828 * Martin Goldmann, Markus Schraudolph: ''PHP 5 – Die Neuerungen''. Galileo Press, ISBN 3-89842-490-1 * Carsten Möhrke: ''Besser PHP programmieren''. Galileo Press, ISBN 3-89842-381-6 * Christian Wenz, Tobias Hauser: ''PHP 5 Kompendium''. Markt und Technik, ISBN 3-8272-6292-5 == Weblinks == Dies ist eine kleine Auswahl von Links zu PHP. Eine ausführliche Linksammlung findet sich im Open Directory Project. * [http://www.php.net Offizielle Website] mit [http://www.php.net/manual/de deutschsprachigem Handbuch] * [http://www.php-faq.de FAQ der Newsgroups de.comp.lang.php.*] * [http://dmoz.org/World/Deutsch/Computer/Programmieren/Internet/PHP/ Linksammlung zum Thema PHP] beim [[Open Directory Project]] * [http://www.Zend.com PHP Core Mitentwickler] === Zeitschriften === * [http://www.php-mag.de/ PHP-Magazin] deutschsprachig * [http://www.php-mag.net/ PHP Magazine] englischsprachig * [http://www.phpsolmag.org/ PHP Solutions] erscheint in mehreren Sprachen, darunter auch auf Deutsch * [http://www.phparch.com/ php|architect] englischsprachig {{Wikibooks|Websiteentwicklung: PHP}} {{Wiktionary|PHP}} [[Kategorie:Programmiersprache]] [[Kategorie:Skriptsprache]] [[Kategorie:Freie Software]] [[Kategorie:Web-Entwicklung]] [[als:PHP]] [[ar:بي.إتش.بي]] [[bg:PHP]] [[bs:PHP]] [[ca:PHP]] [[cs:PHP]] [[da:PHP]] [[en:PHP]] [[eo:PHP]] [[es:PHP]] [[et:PHP]] [[fa:زبان برنامه‌نویسی پی‌اچ‌پی]] [[fi:PHP]] [[fr:PHP hypertext preprocessor]] [[gl:PHP]] [[he:PHP]] [[hr:PHP]] [[hu:PHP programozási nyelv]] [[id:PHP]] [[is:PHP]] [[it:PHP]] [[ja:PHP Hypertext Preprocessor]] [[ko:PHP]] [[ku:PHP]] [[lt:PHP]] [[lv:PHP]] [[ms:PHP]] [[nl:PHP]] [[no:PHP]] [[pl:PHP]] [[pt:PHP]] [[ro:PHP]] [[ru:PHP]] [[sk:PHP]] [[sl:PHP]] [[sq:PHP]] [[sr:PHP]] [[sv:PHP]] [[th:ภาษาพีเอชพี]] [[tr:PHP]] [[uk:PHP]] [[vi:PHP]] [[zh:PHP]]




Diese Version des Artikels stammt vom 26.02.2006.



Der Inhalt dieser Seite basiert auf dem Artikel „PHP“ aus der freien Enzyklop�die Wikipedia und ist unter der GNU-Lizenz f�r freie Dokumentation ver�ffentlicht. Auf der Wikipedia-Seite ist eine Liste der Autoren einzusehen.

Zufallsartikel.

IT-Sicherheit

... mehr