Wiki source for ProgrammierenMitPHP
===== PHP Skriptsprache =====
== für das WWW und andere Lösungen ==
((1)) Nützliche Links
An dieser Stelle werden nützliche Infos verlinkt, die man immer wieder mal brauchen könnte:
- Timezones PHP: https://www.php.net/manual/en/timezones.europe.php
- [[https://schroederdennis.de/allgemein/php-81-installieren-updaten-debian-11-bullseye-anleitung-upgrade/ PHP 8.1 unter Debian 11]] - standardmäßig ist PHP 7.4 installiert!
((1)) Sicherheit
Hinweise zum sicheren Quelltext:
- Absicherung der ##includes## in PHP - http://www.webmasterpro.de/coding/article/php-sicherheit-include-absichern.html
- do not use "register globals"
- /etc/php.ini > register_globals = OFF
- if you use "register_globals", then initialize every variable!
- do not trust incoming data
- you shouldn't use "include($_GET['seite']);"
- use safe settings in your APACHE / PHP configuration
- [[http://www.php.net/manual/de/features.safe-mode.php SafeMode]] in php.ini
- OpenBasedir in httpd.conf
((1)) Reguläre Ausdrücke
Interessante Seite, auch wenn noch nicht probiert: http://regexp-evaluator.de
Für kleine Ersetzungen in Zeichenketten können auch Funktionen, wie ##printf## oder ##strtr## genutzt werden. Da dies öfter an Reihenfolge der Parameter gebunden ist, wären genannte Elemente besser, zum Beispiel so:
%%(php)
<?php
$hours = 2;
$minutes = 24;
$seconds = 35;
// Option 1: Replacing %variable
echo strtr(
'Last time logged in was %hours hours, %minutes minutes, %seconds seconds ago',
[
'%hours' => $hours,
'%minutes' => $minutes,
'%seconds' => $seconds
]
);
// Option 2: Alternative replacing {variable}
echo strtr(
'Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago',
[
'{hours}' => $hours,
'{minutes}' => $minutes,
'{seconds}' => $seconds
]
);
// Option 3: Using an array with variables:
$data = [
'{hours}' => 2,
'{minutes}' => 24,
'{seconds}' => 35,
];
echo strtr('Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago', $data);
?>
%%
((1)) Baukasten
Grundlegende Code-Schnipsel und genutzte Prozeduren, Module [[PHPBaukasten werden hier gesammelt]]
((1)) Composer unter Ubuntu
Um //composer// zu nutzen habe ich folgende Vorbereitungen treffen müssen - geprüft auf Ubuntu 22.04 LTS:
(//Quelle: [[https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-20-04-de Installieren und Verwenden von Composer unter Ubuntu 20.04]]//)
((2)) Notwendige Pakete
##apt install git curl php-cli unzip##
(in der Regel sind git und curl bereits installiert)
((2)) Composer als solcher
##cd [home]
curl -sS https://getcomposer.org/installer -o composer-setup.php##
Hash-Werte prüfen:
##HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH##
sichere Installationsmöglichkeit überprüfen
##php -r "if (hash_file('SHA384', 'composer-setup.php') ""==="" '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"##
Installieren:
##sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer##
----
CategoryITKnowledge
== für das WWW und andere Lösungen ==
((1)) Nützliche Links
An dieser Stelle werden nützliche Infos verlinkt, die man immer wieder mal brauchen könnte:
- Timezones PHP: https://www.php.net/manual/en/timezones.europe.php
- [[https://schroederdennis.de/allgemein/php-81-installieren-updaten-debian-11-bullseye-anleitung-upgrade/ PHP 8.1 unter Debian 11]] - standardmäßig ist PHP 7.4 installiert!
((1)) Sicherheit
Hinweise zum sicheren Quelltext:
- Absicherung der ##includes## in PHP - http://www.webmasterpro.de/coding/article/php-sicherheit-include-absichern.html
- do not use "register globals"
- /etc/php.ini > register_globals = OFF
- if you use "register_globals", then initialize every variable!
- do not trust incoming data
- you shouldn't use "include($_GET['seite']);"
- use safe settings in your APACHE / PHP configuration
- [[http://www.php.net/manual/de/features.safe-mode.php SafeMode]] in php.ini
- OpenBasedir in httpd.conf
((1)) Reguläre Ausdrücke
Interessante Seite, auch wenn noch nicht probiert: http://regexp-evaluator.de
Für kleine Ersetzungen in Zeichenketten können auch Funktionen, wie ##printf## oder ##strtr## genutzt werden. Da dies öfter an Reihenfolge der Parameter gebunden ist, wären genannte Elemente besser, zum Beispiel so:
%%(php)
<?php
$hours = 2;
$minutes = 24;
$seconds = 35;
// Option 1: Replacing %variable
echo strtr(
'Last time logged in was %hours hours, %minutes minutes, %seconds seconds ago',
[
'%hours' => $hours,
'%minutes' => $minutes,
'%seconds' => $seconds
]
);
// Option 2: Alternative replacing {variable}
echo strtr(
'Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago',
[
'{hours}' => $hours,
'{minutes}' => $minutes,
'{seconds}' => $seconds
]
);
// Option 3: Using an array with variables:
$data = [
'{hours}' => 2,
'{minutes}' => 24,
'{seconds}' => 35,
];
echo strtr('Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago', $data);
?>
%%
((1)) Baukasten
Grundlegende Code-Schnipsel und genutzte Prozeduren, Module [[PHPBaukasten werden hier gesammelt]]
((1)) Composer unter Ubuntu
Um //composer// zu nutzen habe ich folgende Vorbereitungen treffen müssen - geprüft auf Ubuntu 22.04 LTS:
(//Quelle: [[https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-20-04-de Installieren und Verwenden von Composer unter Ubuntu 20.04]]//)
((2)) Notwendige Pakete
##apt install git curl php-cli unzip##
(in der Regel sind git und curl bereits installiert)
((2)) Composer als solcher
##cd [home]
curl -sS https://getcomposer.org/installer -o composer-setup.php##
Hash-Werte prüfen:
##HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH##
sichere Installationsmöglichkeit überprüfen
##php -r "if (hash_file('SHA384', 'composer-setup.php') ""==="" '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"##
Installieren:
##sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer##
----
CategoryITKnowledge