Dies ist eine alte Version des Dokuments!
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 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 } ?>