PHP via CLI
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if ( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. **Lege es außerhalb des DOCUMENT_ROOT ab. Und vergib KEINE andere Endung!**
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array mit dem Skriptaufruf selbst und der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Bei einem Aufruf mit
~~~SHELL
~$ ./Skript.php foo bar
~~~
also
~~~
$argv[0] → './Skript.php'
$argv[1] → 'foo'
$argv[2] → 'bar'
~~~
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if ( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. **Lege es außerhalb des DOCUMENT_ROOT ab. Und vergib KEINE andere Endung!**
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array mit dem Skriptaufruf selbst und der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Bei einem Aufruf mit
~~~SHELL
~$ ./Skript.php foo bar
~~~
also
~~~
$argv[0] → './Skript.php'
$argv[1] → 'foo'
$argv[2] → 'bar'
~~~
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if ( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. **Lege es außerhalb des DOCUMENT_ROOT ab. Und vergib KEINE andere Endung!**
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array Array der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Bei einem Aufruf mit
~~~SHELL
~$ ./Skript.php foo bar
~~~
also
~~~
$argv[0] → './Skript.php'
$argv[1] → 'foo'
$argv[2] → 'bar'
~~~
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. **Lege es außerhalb des DOCUMENT_ROOT ab. Und vergib KEINE andere Endung!**
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array Array der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Bei einem Aufruf mit
~~~SHELL
~$ ./Skript.php foo bar
~~~
also
~~~
$argv[0] → './Skript.php'
$argv[1] → 'foo'
$argv[2] → 'bar'
~~~
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array Array der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Bei einem Aufruf mit
~~~SHELL
~$ ./Skript.php foo bar
~~~
also
~~~
$argv[0] → './Skript.php'
$argv[1] → 'foo'
$argv[2] → 'bar'
~~~
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
**HINT:** [Die Variable `$argv` enthält im Falle eines CLI- Aufrufs ein Array Array der womöglich an das Skript übergebenen Argumente.](https://www.php.net/manual/de/reserved.variables.argv.php)
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder Andere nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von RaketenwilliEinführend:
Die Shell (welche denn?) kann man zwar für Skripte benutzen, diese kommt aber schnell an Grenzen, sie war nie als universelle Programmiersprache gedacht und wird wohl das Eine oder anderewas Du brauchst, nicht können. Es gibt ja nicht grundlos so viele Programmiersprachen…
> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen, fast nur bei Windows-Editoren ein „Problem“) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von Raketenwilli> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen.) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.
MySQL Abfrage in Batchdatei verarbeiten
bearbeitet von Raketenwilli> In php kein Akt, aber ich krieg nicht raus wie man das in einer Batch genauso wie im Beispiel machen kann.
Klar. Wenn PHP auch als CLI zur Verfügung steht (Du es via ssh starten kannst), dann führe mal
~~~SHELL
~$ which php
~~~
aus.
Das Ergebnis sieht etwa so aus:
~~~
/usr/bin/php
~~~
Im nächsten Schritt notierst Du das als „Shebang“ in der ERSTEN (sic: ersten!) Zeile des Skriptes:
~~~
#!/usr/bin/php
~~~
Achte auf das Ausrufezeichen und darauf, dass Dein Editor keine Unicode-BOM schreibt. (Meist unter „Kodierung“ einzustellen.) Danach vergibst Du Dir selbst das Recht, das Skript auszuführen:
~~~SHELL
chmod 700 Skript.php
~~~
Starten kannst Du es dann mit
~~~SHELL
~$ ./Skript.php
~~~
oder mit
~~~SHELL
~$ /pfad/zu/Skript.php
~~~
Achte darauf, dass es nicht via Webserver abrufbar ist, denn es stehen ja Benutzername und Passwort für die Datenbank drin.
Eine zusätzliche Bremse kannst Du wie folgt einbauen:
~~~PHP
#!/usr/bin/php
if (! empty( $_SERVER['DOCUMENT_ROOT'] ) ) {
exit;
}
~~~
(Das sorgt dafür, dass das Skript stumpf abbricht, wenn es via Webserver ausgeführt wird, verhindert aber womöglich nicht, dass das Skript im Quelltext abgerufen wird. Lege es außerhalb des DOCUMENT_ROOT ab.
Das gezeigte Skript sieht nicht so aus, als müsstest Du Dir Sorgen wegen des Speichers machen.