Hallo, Gast |
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.
|
Foren-Statistiken |
» Mitglieder: 1
» Neuestes Mitglied: Joopi
» Foren-Themen: 452
» Foren-Beiträge: 628
Komplettstatistiken
|
Benutzer Online |
Momentan sind 8 Benutzer online » 0 Mitglieder » 5 Gäste Bytespider, DotBot, bot
|
|
|
PhpMyAdmin Datenbank importieren |
Geschrieben von: Joopi - 07-01-2023, 11:34 - Forum: Linux
- Keine Antworten
|
|
Um normalerweise in PHPMyAdmin eine Datenbank zu importieren, muss die Datenbank bekannt sein.
Man kann aber in der sql-Datei nach dem Eintrag -- Datenbank: `dbname` einfach die Datenbank erstellen (create) und in Benutzung (use)nehmen:
Zitat:-- Datenbank: `testdb`
--
CREATE DATABASE `testdb2`;
use `testdb2`;
|
|
|
PhpMyAdmin - Fehlermeldungen |
Geschrieben von: Joopi - 07-01-2023, 11:32 - Forum: Linux
- Keine Antworten
|
|
Code: cd /var/lib
sudo chmod -R 775 phpmyadmin/` this set read and write file permission.
Die Fehlermeldung mit dem blowfish-secret konnte ich durch die Berechtigungsänderung und die config.inc.php in /usr/share/phpmyadmin lösen.
Der Fehler mit dem TempDir konnte ich insofern lösen, dass die Eigentumszuordnung falsch war:
Code: user@rechner:/var/lib$ cd phpmyadmin/
user@rechner:/var/lib/phpmyadmin$ ls -l
insgesamt 8
-rwxrwxr-x 1 root www-data 68 Nov 19 19:23 blowfish_secret.inc.php
drwxrwxr-x 2 www-data www-data 4096 Mär 31 2020 tmp
user@rechner:/var/lib/phpmyadmin$ sudo chown user:user tmp/
user@rechner:/var/lib/phpmyadmin$ ls -l
insgesamt 8
-rwxrwxr-x 1 root www-data 68 Nov 19 19:23 blowfish_secret.inc.php
drwxrwxr-x 3 user user 4096 Nov 19 19:44 tmp
user@rechner:/var/lib/phpmyadmin$ sudo chown root:user blowfish_secret.inc.php
user@rechner:/var/lib/phpmyadmin$ ls -l
insgesamt 8
-rwxrwxr-x 1 root user 68 Nov 19 19:23 blowfish_secret.inc.php
drwxrwxr-x 3 user user 4096 Nov 19 19:44 tmp
|
|
|
Zufallszahl nutzen |
Geschrieben von: Joopi - 07-01-2023, 11:25 - Forum: Programmieren
- Keine Antworten
|
|
Heute hatte ich mal wieder eine Sache, bei der ich Dateinamen erstellen musste. Zur Differenzierung konnte ich keine abstrakten Dateinamen erstellen, sondern hatte eine feste Vorgabe. Damit dennoch individuelle Dateinamen erstellt werden konnten, habe ich die Möglichkeit der Zufallszahl genutzt.
Mit folgendem Befehl wird eine Zufallszahl im Bereich von 10000 bis 99999 ermittelt und in eine Variable geschrieben:
PHP-Code: <?php $zufallszahl = rand(10000, 99999); ?>
Diese Variable kann dann im weiteren Code verwendet werden.
|
|
|
Zeitstempel erstellen |
Geschrieben von: Joopi - 07-01-2023, 11:25 - Forum: Programmieren
- Keine Antworten
|
|
Um in PHP einen Zeitstempel zu erstellen, der im Frontmatter eine MarkDown-Datei in Hugo genutzt werden kann, ist folgende Syntax notwendig:
PHP-Code: <?php // setlocale(LC_ALL,'de'); echo strftime('%Y-%m-%dT%H:%M:%S%z'); ?>
Der Aufruf dieses sehr kurzes Scripts, erzeugt folgende Ausgabe:
Zitat:2021-10-12T20:37:11+0200
Diese Formatierung wird eben in MarkDown-Dateien benötigt, aus denen später in Hugo statischen HTML-Seiten erstellt werden. Das Datum dient der Sortierung.
Die Vorgabe aus dem Theme bzw. von Hugo ist eigentlich diese Schreibweise:
Zitat:2021-10-12T20:37:11+02:00
Nach einigen Tests und Betrachtung der HTML-Quelltexte kann ich nicht feststellen, dass es Unterschiede in der Verarbeitung gibt.
|
|
|
Zeilenumbruch entfernen |
Geschrieben von: Joopi - 07-01-2023, 11:23 - Forum: Programmieren
- Keine Antworten
|
|
Es gibt verschiedene Methoden, um unerwünschte Zeilenumbrüche aus einem Text zu entfernen. Ein für mich sehr gutes Vorgehen ist es, die möglichen Zeilenbrüche in einem Array aufzuführen und damit dann einen Ersetzen-Code zu formulieren:
PHP-Code: <?php $stringtext = str_replace(array("\r\n","\n","\r"),"",$stringtext); ?>
Die Zeilenumbrüche sind meist unsichtbar, daher kann durchaus alles bekannten Steuerzeichen in das Array aufgenommen werden.
|
|
|
vardump() auswerten |
Geschrieben von: Joopi - 07-01-2023, 11:22 - Forum: Programmieren
- Keine Antworten
|
|
Das Debuggen von Programmcode habe ich nie richtig wahrgenommen und gelernt. In VBA kann ich das mittlerweile einsetzen, bei PHP habe ich wieder mal so meine Probleme. Nun weiß ich aber, dass ich mit var_dump() durchaus gute Erkenntnisse erzielen kann, wenn mal wieder etwas nicht funktioniert.
Insbesondere bei der Nutzung von Arrays und deren Inhalte kann ich überprüfen, ob ich die richtigen Ergebnisse erwarten kann.
Bei der Ermittlung der Breite eine Videos, welches über ein Array via GET als Link aufzurufen wurde, hatte ich Probleme, dass Ergebnis der Shell-EXEC in eine Variable zu bekommen. Durch var_dump() erst habe ich geschnallt, dass ich es mit einem Array zu tun hatte.
Und zwar habe ich den Inhalt von $_GET mittels var_dump() ausgewertet:
Das Ergebnis war:
PHP-Code: <?php array(1) { ["video"]=> string(72) "/TM2_1/serien/wilsberg/wilsberg_24_interne_affaeren_2008-zp7ayygia5q.mp4" } ?>
Damit war klar, dass ich ein Array als Ergebnis erhalten hatte. Wie aber nun das Ergebnis für meine Zwecke nutzen. Der komplette String aus Ordner und Dateiname sollte in dem Shell-EXEC-Statement als Variable genutzt werden, um die Breite zu ermitteln.
Eher durch Zufall wurde mir klar, dass in dem Array nur ein Element enthalten war - nämlich video.
Und wie ich gesehen konnte, wurde video in dem Tag für den HTML-Player als Variable für den source-Tag genutzt:
PHP-Code: <?php <source src=<?php echo $video; ?> type="video/mp4"> ?>
Und damit war dann klar, dass ich für den absouten Dateinamen nun eine Variable $video würde nutzen können:
PHP-Code: <?php $breite = shell_exec("ffprobe -v error -select_streams v:0 -show_entries stream=width -of csv=s=x:p=0 " . $video); ?>
Der Inhalt der Variablen $video war in diesem Falle:
PHP-Code: <?php /TM2_1/serien/wilsberg/wilsberg_24_interne_affaeren_2008-zp7ayygia5q.mp4 ?>
Damit konnte ich die Breite nun in den HTML-Tag für den Player bei width einsetzen.
Der in den eckigen Klammern eines Arrays stehende Wert, ist die zu nutzenden Variable für die weitere Verwendung im Programmcode.
|
|
|
Datenbanken sichern |
Geschrieben von: Joopi - 07-01-2023, 11:16 - Forum: Programmieren
- Keine Antworten
|
|
Die Sicherung von Datenbank, MyIsam und/oder InnoDB, ist wichtig. MyIsam-Datenbanken können über deren Dateien gesichert werden, die (unter Debian) in /var/lib/mysql abgelegt werden. Das gilt nicht für InnoDB-Datenbanken.
Darum ist es sehr wichtig, dass von den Datenbanken sogannte Dumps gemacht werden. Dumps sind im Prinzip Sicherungen als Textdatei im sql-Format. Diese können bei Bedarf genauso wieder eingelesen werden.
Es gibt verschiedene Möglichkeiten der Sicherungsstrategie. Man kann einen Gesamtdump machen oder vielleicht eine Gruppe von Datenbanken zusammenfassen oder eben nur einzelne Datenbanken sichern. Die Befehle dazu, die über die Konsole abgesetzt oder in einem Script hinterlegt werden, sind nachfolgend beschrieben.
Sicherung einer einzelnen Datenbank mit Mitgabe des Passwortes:
Code: user@rechner:~$ mysqldump -u user -h localhost --password="pwd" datenbank > one_database.sql
Sicherung mehrerer Datenbanken mit Mitgabe des Passwortes:
Code: user@rechner:~$ mysqldump -u user -h localhost --password="pwd" --databases datenbank1 datenbank2 datenbank3 > several_databases.sql
Sicherung aller Datenbanken mit Mitgabe des Passwortes:
Code: user@rechner:~$ mysqldump -u user -h localhost --password="pwd" --all-databases --events > all_databases.sql
Ich lasse jeden Abend über einen Cronjob von jeder Datenbank einen Dump erstellen, der dann als ZIP-Datei auf die Backup-Festplatte mit Datumsangabe im Dateinamen verschoben wird. Eine Sicherung in meiner Cloud werde ich mir noch überlegen, da ich auch eine Methode finden muss, wie ich ältere Sicherungen automatisiert löschen kann. Ansonsten mülle ich mir nach und nach die Cloud mit unnötigen Dateien voll.
|
|
|
Shellscript aufrufen |
Geschrieben von: Joopi - 07-01-2023, 11:13 - Forum: Programmieren
- Keine Antworten
|
|
Innerhalb eines PHP-Codes kann ein ausführbares Shellscript ausgeführt werden. Das geht mit shell_exec.
PHP-Code: <?php $user = shell_exec("id"); echo "$user"; $berechtigung = shell_exec("ls -l mache_irgendwas.script"); //funktioniert nur so (ohne ls -l): $berechtigung = shell_exec("mache_irgendwas.script"); echo "$berechtigung"; ?>
In einem Shellscript habe ich Funktionen eingebaut, die Bilder renamen und resizen. Zwar bestehen diese Möglichkeiten auch innerhalb von PHP, aber ich benötige das Shellscript auch zu anderen Gelegenheiten. Daher wollte ich das Rad nicht neu erfinden.
Es mag sein, dass der geneigte PHP-Coder kurz vor einem Herzklabaster steht. Ich nutze das aber ausschließlich auf dem lokalen Rechner. Mir genügt es so und ich bin froh zu wissen, dass man überhaupt Shellscripte im PHP-Code integrieren kann.
|
|
|
Primäre Angaben zu Pfad und Datei |
Geschrieben von: Joopi - 07-01-2023, 11:12 - Forum: Programmieren
- Keine Antworten
|
|
Um Informationen zu einem Pfad und/oder einer Datei zu erhalten, wird in PHP die Funktion PATHINFO benutzt. In meinen Lernbeispielen habe ich bislang zwei verschiedene Arten der Anwendung gefunden. Die eine erzeugt ein Array, die andere nutzt eine Variable, die einen String auf nimmt und dann ein Array daraus macht. Oder so ähnlich. Besser kann ich es nicht erklären.
Das erste Beispiel erzeugt ein Array mit 4 Elementen:
PHP-Code: <?php $dateiteile = pathinfo("/media/work_bilder_decode/zz_temp/105b34dd5.jpg");
echo "Das ist der erste Teil der Ausgabe:\n\n";
echo "Pfad ohne Datei: " . $dateiteile['dirname'], "\n"; echo "Dateiname komplett: " . $dateiteile['basename'], "\n"; echo "Extension: " . $dateiteile['extension'], "\n"; echo "Dateiname ohne Extension: " . $dateiteile['filename'], "\n"; ?>
Die Ausgabe hier ist:
Zitat:Das ist der erste Teil der Ausgabe:
Pfad ohne Datei: /media/work_bilder_decode/zz_temp
Dateiname komplett: 105b34dd5.jpg
Extension: jpg
Dateiname ohne Extension: 105b34dd5
Das zweite Beispiel nimmt die Pfad-/Dateiangabe in eine String-Variable auf und wird erst später bei der Übernahme der 4 Bestandteile mit der **PATHINFO**-Funktion bestückt. Der Code sieht dann wie folgt aus:
PHP-Code: <?php $dateiteile2 = "/media/work_bilder_decode/zz_temp/105b34dd5.jpg";
$dir = pathinfo($dateiteile2, PATHINFO_DIRNAME); $base = pathinfo($dateiteile2, PATHINFO_BASENAME); $ext = pathinfo($dateiteile2, PATHINFO_EXTENSION); $datei = pathinfo($dateiteile2, PATHINFO_FILENAME);
echo "Das ist der zweite Teil der Ausgabe:\n\n";
echo "Pfad ohne Datei: " . $dir . "\n"; echo "Dateiname komplett: " . $base . "\n"; echo "Extension: " . $ext . "\n"; echo "Dateiname ohne Extension: " . $datei . "\n"; ?>
Die Ausgabe zu dieser Codierung sieht dann so aus (nicht anders als oben).
Zitat:Das ist der zweite Teil der Ausgabe:
Pfad ohne Datei: /media/work_bilder_decode/zz_temp
Dateiname komplett: 105b34dd5.jpg
Extension: jpg
Dateiname ohne Extension: 105b34dd5
Welche Art der Codierung später mal genutzt werden soll oder muss, hängt wohl davon ab, was man eigentlich erreichen möchte. Da beides zum gleichen Ergebnis führt, ist es vielleicht egal. Das wird sich später mal herausstellen müssen.
Im Moment bin ich froh, dass ich das endlich verstanden habe und nun auch anwenden kann. In Verbindung mit Dateilisten, die mittels Array bearbeitet werden, könnte diese neue Erkenntnis für meine Programmiervorhaben sehr von Vorteil sein.
Die einfache Anwendung von Arrays habe ich mitterweile auch einigermaßen gut verstanden.
|
|
|
mehrere Dateien löschen |
Geschrieben von: Joopi - 07-01-2023, 11:09 - Forum: Programmieren
- Keine Antworten
|
|
Das Löschen von Dateien in der Konsole kann relativ einfach mit rm erfolgen. Dieser Befehl steht für remove.
Will man mehrere Dateien löschen, die z.B. alle die Extension txt haben, so ist der Befehl rm *.txt anwendbar.
In einem PHP-Skript ist der Befehl unlink zum Löschen einer Datei aufzurufen. Allerdings kann man nicht, wie es in der Konsole möglich ist, einfach mehrere Dateien löschen, indem man so vorgeht wie beim Shellbefehl.
Um in einem Ordner mehrere Dateien zu löschen, die z.B. alle die Extension .md haben, ist folgende Codezeile im Skript notwendig:
PHP-Code: <?php array_map('unlink', glob( "/home/tuennes/*.md")); ?>
Damit werden alle Dateien in dem vorgegebenen Ordner gelöscht, die die Extension .md haben.
Zitat:glob — Findet Dateinamen, die mit einem Muster übereinstimmen
|
|
|
|