PHP (PHP Hypertext Preprocessor) und ist eine weit verbreitete serverseitige Skriptsprache, die hauptsächlich für die Entwicklung von Webanwendungen verwendet wird. PHP wird in der Regel in Verbindung mit einer Webserver-Software wie Apache, Nginx oder Microsoft IIS eingesetzt.
php -r 'phpinfo();'
$zahl = 10; // Integer $preis = 19.99; // Float $name = "John"; // String $istWahr = true; // Boolean $farben = array("Rot", "Grün", "Blau"); // Array
$zahl = 10; if ($zahl > 5) { echo "Die Zahl ist größer als 5."; } else { echo "Die Zahl ist kleiner oder gleich 5."; } $zahl = 1; while ($zahl <= 5) { echo $zahl; $zahl++; } for ($i = 1; $i <= 5; $i++) { echo $i; } $zahl = 1; do { echo $zahl; $zahl++; } while ($zahl <= 5);
function addiere($zahl1, $zahl2) { $summe = $zahl1 + $zahl2; return $summe; } $resultat = addiere(3, 5); echo $resultat; // Ausgabe: 8
$multipliziere = function($a, $b) { return $a * $b; }; $resultat = $multipliziere(5, 3); echo $resultat; // Ausgabe: 15
function berechne($zahl1, $zahl2, $zahl3 = 0) { return $zahl1 + $zahl2 + $zahl3; } $resultat1 = berechne(3, 5); $resultat2 = berechne(3, 5, 2); echo $resultat1; // Ausgabe: 8 echo $resultat2; // Ausgabe: 10
class Auto { public $marke; public $farbe; public function fahre() { echo "Das Auto fährt!"; } } // Objekt erstellen $meinAuto = new Auto(); // Eigenschaften setzen $meinAuto->marke = "BMW"; $meinAuto->farbe = "Blau"; // Eigenschaften ausgeben echo $meinAuto->marke; // Ausgabe: BMW echo $meinAuto->farbe; // Ausgabe: Blau // Methode aufrufen $meinAuto->fahre(); // Ausgabe: Das Auto fährt!
Apache oder Xampp
Installiert man einfach nur das Paket php, so wird der Webserver Apache mitinstalliert und eine sofort lauffähige Apache PHP Umgebung geschaffen.
apt install php // php + apache
Die Anbindung an einen bestehenden Apache kann ansonsten mit folgendem Paket nachinstalliert werden.
apt install libapache2-mod-php // nur php
Wer PHP nicht mit Webservern einsetzen will kann auch nur die Kommandozeilentools installieren.
apt install php-cli
sort an associative array based on its values
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); asort($age);
sort an associative array based on its keys
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); ksort($age);
flip keys/values
$input = array(0 => "Orange", 1 => "Apfel", 2 => "Birne"); print_r(array_flip($input));
execute a callback on each index
function isOdd($var) return $var & 1; function isEven($var) { return !($var & 1); } $input = [1,2,3,4,5]; print_r(array_filter($input, 'isOdd'));
execute a callback on each index
function cube($n) { return $n * $n * $n; } $a = array(1, 2, 3, 4, 5); print_r(array_map("cube", $a));
splice an array at a given point or range
array_splice(array(input), int offset, int length, mixed array replacement) $input = array("rot", "grün", "blau", "gelb"); array_splice($input, 2); // $input ist nun array("rot", "grün") array_splice($input, 1, -1); // $input ist nun array("rot", "gelb") array_splice($input, -1, 1, array("schwarz", "braun")); // $input ist nun array("rot", "grün", "blau", "schwarz", "braun")
give two arrays get the difference by default looking for values, to sort keys use array_diff_key
$array1 = array("a" => "grün", "rot", "blau", "rot"); $array2 = array("b" => "grün", "gelb", "rot"); print_r(array_diff($array1, $array2)); // array(1, 'blau')
to get diff of values use array_diff
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4); $array2 = array('grün' => 5, 'gelb' => 7, 'türkis' => 8); print_r(array_diff_key($array1, $array2));
given 2 arrays it uses 1 as keys, 1 as values
$a = array('gruen', 'rot', 'gelb'); $b = array('avokado', 'apfel', 'banane'); print_r(array_combine($a, $b));
// Output Buffering-Modus starten. ob_start(); echo "Inhalt im Buffer"; // gibt den Inhalt des Output Buffers zurück, ohne ihn zu leeren. ob_start(); echo "Inhalt im Buffer"; $content = ob_get_contents(); echo "Inhalt im Buffer: " . $content; // Output Buffer leeren, ohne den Inhalt an den Browser zu senden ob_start(); echo "Inhalt im Buffer"; ob_clean(); // leert den Output Buffer und beendet das Output Buffering. ob_start(); echo "Inhalt im Buffer"; ob_end_clean(); // gibt die Länge des Inhalts im Output Buffer zurück. ob_start(); echo "Inhalt im Buffer"; $length = ob_get_length(); echo "Länge des Inhalts im Buffer: " . $length; // gibt den Inhalt des Output Buffers an den Browser aus und beendet das Output Buffering ob_start(); echo "Inhalt im Buffer"; ob_end_flush();
header("Access-Control-Allow-Origin: *");
$from = "from@mail.at"; $to = 'to@mail.at'; $reply_to = "from@mail.at"; $subject = 'Ein Betreff'; $message = 'Ein Inhalt'; $header = 'From: ' . $from . "\r\n" . 'Reply-To: ' . $reply_to . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $header);
$servername = "localhost"; $username = "root"; $password = "dein-passwort"; $dbname = "deine-datenbank"; // Verbindung zur Datenbank herstellen $conn = new mysqli($servername, $username, $password, $dbname); // Beispielabfrage $sql = "SELECT * FROM benutzer"; $result = $conn->query($sql); // Überprüfen und Ausgeben der Ergebnisse if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "Name: " . $row["name"] . "<br>"; } } else { echo "Keine Ergebnisse gefunden."; } // Verbindung schließen $conn->close();
$servername = "localhost"; $username = "root"; $password = "dein-passwort"; $dbname = "deine-datenbank"; // Verbindung zur Datenbank herstellen $conn = new mysqli($servername, $username, $password, $dbname); $stmt = $conn->prepare("SELECT * FROM benutzer WHERE alter > ?"); $alterGrenzwert = 25; $stmt->bind_param("i", $alterGrenzwert); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { echo "Name: " . $row["name"] . "<br>"; echo "Alter: " . $row["alter"] . "<br>"; echo "E-Mail: " . $row["email"] . "<br><br>"; } $stmt->close(); $stmt = $conn->prepare("UPDATE benutzer SET email = ? WHERE id = ?"); $id = 1; $email = "neue-email@example.com"; $stmt->bind_param("si", $email, $id); $stmt->execute(); if ($stmt->affected_rows > 0) { echo "Datensatz erfolgreich aktualisiert."; } else { echo "Fehler beim Aktualisieren des Datensatzes."; } $stmt->close(); $stmt = $conn->prepare("DELETE FROM benutzer WHERE id = ?"); $id = 1; $stmt->bind_param("i", $id); $stmt->execute(); if ($stmt->affected_rows > 0) { echo "Datensatz erfolgreich gelöscht."; } else { echo "Fehler beim Löschen des Datensatzes."; } $stmt->close();
<?php // Verbindung zur MSSQL-Datenbank herstellen $serverName = "localhost"; // Servername $connectionOptions = array( "Database" => "deine_datenbank", // Datenbankname "Uid" => "dein_benutzername", // Benutzername "PWD" => "dein_passwort" // Passwort ); // Verbindung herstellen $conn = sqlsrv_connect( $serverName, $connectionOptions ); // Überprüfen, ob die Verbindung erfolgreich war if( !$conn ) { die( print_r(sqlsrv_errors(), true)); } // SQL-Abfrage $query = "SELECT * FROM deine_tabelle"; // Abfrage ausführen $stmt = sqlsrv_query( $conn, $query ); // Überprüfen, ob die Abfrage erfolgreich war if( !$stmt ) { die( print_r(sqlsrv_errors(), true)); } // Ergebnisse anzeigen while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC ) ) { echo "Spalte1: " . $row['Spalte1'] . "<br />"; echo "Spalte2: " . $row['Spalte2'] . "<br />"; } // Verbindung schließen sqlsrv_free_stmt( $stmt ); sqlsrv_close( $conn ); ?>
<?php // Verbindung zur MSSQL-Datenbank herstellen $serverName = "localhost"; // Servername $connectionOptions = array( "Database" => "deine_datenbank", // Datenbankname "Uid" => "dein_benutzername", // Benutzername "PWD" => "dein_passwort" // Passwort ); try { // Mit PDO verbinden $conn = new PDO("sqlsrv:Server=$serverName;Database=" . $connectionOptions['Database'], $connectionOptions['Uid'], $connectionOptions['PWD']); // Fehlerbehandlung aktivieren $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL-Abfrage $query = "SELECT * FROM deine_tabelle"; // Abfrage ausführen $stmt = $conn->query($query); // Ergebnisse anzeigen while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "Spalte1: " . $row['Spalte1'] . "<br />"; echo "Spalte2: " . $row['Spalte2'] . "<br />"; } } catch (PDOException $e) { echo "Verbindungsfehler: " . $e->getMessage(); } ?>
<?php if(isset($_POST["submit"])) { $target = basename($_FILES["file"]["name"]); // check if its an actual image (optional), remove for other file types $check = getimagesize($_FILES["file"]["tmp_name"]); if($check) move_uploaded_file($_FILES["file"]["tmp_name"], $target); } ?> <form method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="file" id="file"> <input type="submit" value="Upload Image" name="submit"> </form>
Hier ist ein einfacher Ansatz:
index.php:
<?php // CMS-Konfiguration $config = [ 'theme' => 'default', 'plugins' => ['plugin1', 'plugin2'] ]; // Aktives Theme und Plugins laden $theme = loadTheme($config['theme']); $plugins = loadPlugins($config['plugins']); // CMS-Inhalt generieren $content = generateContent(); // CMS-Layout anzeigen renderLayout($theme, $content); // Aktives Theme laden function loadTheme($themeName) { $themePath = 'themes/' . $themeName . '/'; if (file_exists($themePath . 'theme.php')) { include($themePath . 'theme.php'); return new Theme(); } else { die('Theme nicht gefunden'); } } // Plugins laden function loadPlugins($pluginNames) { $plugins = []; foreach ($pluginNames as $pluginName) { $pluginPath = 'plugins/' . $pluginName . '/'; if (file_exists($pluginPath . 'plugin.php')) { include($pluginPath . 'plugin.php'); $plugins[] = new Plugin(); } } return $plugins; } // CMS-Inhalt generieren function generateContent() { $content = ''; // Hier wird der CMS-Inhalt generiert // Zum Beispiel aus einer Datenbank abrufen oder statischen Inhalt generieren return $content; } // CMS-Layout anzeigen function renderLayout($theme, $content) { echo $theme->renderHeader(); echo $content; echo $theme->renderFooter(); } ?>
themes/default/theme.php
<?php class Theme { public function renderHeader() { return '<header>Header des Themes</header>'; } public function renderFooter() { return '<footer>Footer des Themes</footer>'; } } ?>
plugins/plugin1/plugin.php:
<?php class Plugin { // Hier können Plugin-spezifische Funktionen implementiert werden } ?>
plugins/plugin2/plugin.php:
<?php class Plugin { // Hier können Plugin-spezifische Funktionen implementiert werden } ?>