====== Snippets: PHP ======
[[:snippets:start|← Zurück zu :snippets:start]]
==== Gists ====
Zusätzlich zu den Snippets hier im Wiki habe ich folgende Gists auf GitHub veröffentlicht:
* [[https://gist.github.com/malte70/7673316660a8fa9b574a86196e9543bb|Markdown-Vorschau via PHP-Skript]] \\ Rendert eine Markdown-Datei in zu HTML, inkl. Stylesheet. Wenn an die URL der Markdown-Datei ''?preview'' angehängt wird, leitet eine //RewriteRule// automatisch zur Vorschau-Ansicht um.
===== Mail-Versand =====
Mit PHP können über die Funktion ''mail()'' relativ einfach E-Mails versendet werden. Solange man keine MIME-Mails mit Anhängen oder Text+HTML-Inhalt versenden will, braucht man auch keine externe Bibliothek.
**Achtung:** PHP versendet Mails unter Unix über //sendmail//. Wenn der Webserver nicht gleichzeitig der E-Mail-Server ist, wird der Versand jedoch höchstwahrscheinlich fehlschlagen. Mithilfe von [[https://marlam.de/msmtp/|MSMTP]] können Mails jedoch (//sendmail//-kompatibel!) über einen externen SMTP-Server versendet werden. In meinem Blog-Beitrag „[[https://malte70.de/blog/php-mail-sendmail-msmtp/|PHP mail(), sendmail und MSMTP]]“ habe ich die Installation und Konfiguration von MSMTP Schritt-für-Schritt beschrieben, inkl. der notwendigen PHP-Konfiguration.
";
$mail_sent = mail(
$To,
$Subject,
$Message,
Array(
"From" => $From,
"Reply-To" => $From,
"X-Mailer" => "PHP/".phpversion(),
)
);
echo "\$mail_sent = " . ($mail_sent ? "True" : "False") . "\n;"
===== SQLite3 =====
* [[https://www.php.net/manual/en/class.sqlite3.php|PHP: SQLite3 - Manual]]
* [[https://www.php.net/manual/en/class.sqlite3stmt.php|PHP: SQLite3Stmt - Manual]]
* [[https://www.php.net/manual/en/class.sqlite3result.php|PHP: SQLite3Result - Manual]]
exec('CREATE TABLE users(id INT NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT DEFAULT NULL, password TEXT NOT NULL');
$db->exec('INSERT INTO users (name, email, password) VALUES ("john.doe", "john.doe@example.com", "1234"));');
$db->exec('INSERT INTO users (name, email, password) VALUES ("jane.doe", "jane.doe@example.com", "asdf"));');
// Create a SQLite3Stmt, bind some values and execute the SQL command safely
$stmt = $db->prepare('SELECT * FROM users WHERE id=:id AND name=:name');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$stmt->bindValue(':name', "john.doe", SQLITE3_TEXT);
// Execute statement and get first row as an associative Array
$res = $stmt->execute();
var_dump($res->fetchArray());