===== Programmiersprache PHP (Hypertext Preprocessor) ===== PHP ist eine frei verwendbare, serverbasierte Programmiersprache. Serverbasiert heisst, dass der Programmcode auf dem Server interpretiert wird und lediglich das Ergebnis zum Webbrowser zurück gesandt wird. Somit wird die Rechenleistung vom Server, und nicht vom Client-PC beansprucht. Aus diesem Grund ist die Leistung und Ausstattung des Client-Rechners nicht relevant für die Geschwindigkeit der Scripte. [[https://www.phptherightway.com|{{::php:therightway_leaderboard-728x90.png|}}]] ==== Allgemeines zu PHP ==== * [[php:IDE|Die ideale (leider kostenpflichtige) PHP Entwicklungsumgebung (IDE)]] * [[php:composer|Composer (anwendungsorientierter Paketmanager für PHP)]] * [[php:anonymous_functions|Anonyme Funktionen in PHP]] * [[PHP:Array|Array (Zuordnung von Werten zu Schlüsseln)]] * [[php:bedingungen|Bedingungen in PHP (if - else if - else). Beispiel-Script: Tageszeitabhängige Begrüßung]] * [[php:bitweise|Bitweiser Operator (praktisches Anwendungsbeispiel)]] * [[PHP:DOM|DOM - PHP-Schnittstelle für den Zugriff auf HTML- und XML-Dokumenten]] * [[PHP:GD|GD Libary - Programmbibliothek für die Bearbeitung von Grafiken]] * [[php:ini|Konfigurationsdateien (ini-Dateien) mit parse_ini_file parsen]] * [[PDO|PDO - PHP-Schnittstelle für den Zugriff auf Datenbanken]] * [[php:oop|OOP - Objektorientierte Programmierung]] * [[php:Typumwandlung|Explizite Typumwandlung]] * [[php:Paamayim_Nekudotayim|Gültigkeitsbereichsoperator (Paamayim Nekudotayim)]] * [[php:phpdoc|PHPDoc - Dokumentation im PHP-Quellcode]] * [[php:heredoc|Textabschnitte (z. B. HTML-Text) mit HEREDOC einfügen]] * [[php:loops|Schleifen in PHP]] * [[php:if|IF-ELSE-Kurzschreibweise]] * [[php:empty|empty (PHP-Funktion)]] * [[php:pow|Potenzrechnung mit PHP]] * [[php:mod|Modulo - Der Restwert beim Teilen]] * [[php:simplexml|SimpleXML]] * [[php:preg|Reguläre Ausdrücke (preg_math)]] * [[php:variablenfunktionen|Variablenfunktionen]] * [[php:var_var|Variable Variablen]] * [[php:php2js|Variablen von PHP zu JavaScript übertragen (!)]] * [[php:constants|Konstanten]] ==== Konkrete Aufgabenstellungen ==== * [[php:buchstabenliste|Buchstabenliste (Auflistung aller Buchstaben von A-Z) erstellen]] * [[php:csv|CSV-Datei importieren und dessen Inhalt verarbeiten]] * [[php:date_time|Datum und Uhrzeit (Feiertage, Kalenderwochen, Zeitumrechnung, Zeitumstellung, etc.)]] * [[php:imap|E-Mails aus IMAP-Konto mit PHP auslesen]] * [[php:checkiban|IBAN (International Bank Account Number) mit PHP validieren]] * [[php:php_isopen|Öffnungszeiten mit PHP überprüfen]] * [[pwgen|Passworgenerator erstellen]] * [[php:qr_code|QR-Code mit PHP erzeugen]] * [[php:htaccess|Verzeichnisse mit htaccess vor Zugriff schützen (Beispiel für Dateizugriffe)]] * [[php:otpauth|Zwei-Faktor-Authentifizierung mit Token-Generator ertellen]] ==== Codebeispiele ==== * [[php:autoload|Automatisches Nachladen von Klassen (spl_autoload_register)]] * [[php:fileuploader|File-Uploader mit XMLHttpRequest]] ==== PHP-Klassen vorgestellt ==== * [[FPDF|FPDF - PDF-Dokumente mit PHP erstellen]] * [[ziplib|ZIPlib - ZIP-Archiv mit PHP erstellen]] ==== PHP-Frameworks im Einsatz ==== Ein Framework stellt lediglich Klassen und Methoden zur Verfügung, mit dessen Hilfe Programmierer eigene Anwendungen erstellen können. Ein Framewok stellt keine eigenständige Software für Endanwender dar. * [[fb_sdk:start|Facebook SDK for PHP (v5)]] * [[laravel:start|Laravel (Model View Controller)]] * [[laravel:Eloquent|Eloquent (Laravel ORM)]] * [[php:phpunit|PHPUnit - ein Framework zum Testen von PHP-Skripten]] * [[php:slim|Slim Micro-Framework für PHP]] * [[php:twig|TWIG (Template-Engine für PHP)]] * [[xajax:start|Xajax - Ein Ajax-Framework für PHP]] ==== Datenaustausch mit externen Systemen/Servern ==== * [[php:rest|ReST-API (Programmierschnittstelle)]] * [[postman| Postman (beliebteste Werkzeug zum Testen von APIs)]] * [[redmine:api|Redmine ReST-API]] * [[php:tado|Tado° ReST-API - Heizungssteuerung mit PHP]] * [[php:meteomatics|Wetterbericht mit PHP abfragen]] * [[php:soap|SOAP-API (Programmierschnittstelle)]] ==== Dateiaustausch mit FTP (File Transfer Protocol) ==== Das File Transfer Protocol dient zum plattformunabhängigen Austausch von Dateien zwischen zwei Systemen. FTP ist jedoch unsicher, da es über keine Verschlüsselung verfügt. Daher wurde der Dateiaustausch um die sichereren Varianten FTPS und SFTP erweitert. ^ Protokoll ^ Beschreibung ^ Authentifizerung ^ Standard-Port ^ Beispiele ^ | FTP | File Transfer Protocol | Benutzername und Passwort | Port 21 | [[php:ftp|PHP-Beispiel]] | | FTPS | File Transfer Protocol over SSL | Benutzername und Passwort | Port 21 | [[php:ftps|PHP-Beispiel]] | | SFTP | SSH File Transfer Protocol | Benutzername und Passwort | Port 22 | [[php:sftp|PHP-Beispiel]] | | SFTP | SSH File Transfer Protocol | Benutzername und Private Key | Port 22 | [[php:sftp_private_key|PHP-Beispiel]] |