PHP readline
Programmieren
Basiswissen
Mit dem Befehl readline kann Eingaben von Benutzern in ein PHP-Programm in der Command-line (shell, terminal, console) nutzen. Der Befehl entspricht dem in anderen Programmiersprachen üblichen INPUT. Das ist hier mit kurzen Beispielen vorgestellt.
PHP fragt nach einer Eingabe
Das folgende Programm fragt den Benutzer nach eine Eingabe. Dabei spielt es keine Rolle, ob die Eingabe ein Text oder eine Zahl ist. Die Eingabe kann eine beliebige Zeichenkette (String) sein.
$x=readline();
echo "Deine Eingabe war: ",$x;
?>
Das Programm übernimmt die Eingabe in der Variablen $x[2] und gibt sie dann nach einer kurzen Ankündigung wieder aus.
PHP gibt Tipps zur Eingabe
Der Befehler readline in PHP kann auch einen Tipp für den Benutzer anzeigen, was er eingeben soll. Man kann den Text in Hochkommas oder Gänsefüßchen eingeben:
$x=readline("Welche Farbe hat der Mond? " );
echo "Du sagtst, der Mond habe die Farbe: ",$x;
?>
Das Programm gibt aber nur einen Tipp. Was der Benutzer tatsächlich eingibt, wird von dem Programm nicht überprüft.
PHP fragt nach einer ganzen Zahl
Das folgende Programm fragt den Benutzer nach einer ganzen Zahl[3]. Der Befehl (int)readline interpretiert jede Eingabe als ganze Zahl:
$x=(int)readline("Gib eine ganze Zahl ein: " );
echo "Deine Zahl war: ",$x;
?>
Tatsächlich kann der Benutzer auch Worte wie 'Erdmantel' oder auch echte Kommazahlen wie 4,8 oder 4.8 eingeben. PHP wandelt dann Texte in die Zahl 0 um. Bei Zahlen mit Kommas schneidet PHP alles ab dem Komma einfach ab. Die Eingabe 'Erdmantel' gibt also die Zahl 0. Und die Eingabe 4,8 oder 4.8 gibt die Zahl 4 als gespeicherte Variable.
PHP fragt nach einer Kommazahl
Nun fragt PHP nach einer Eingabe und deutet diese als Dezimalzahl, also als Zahl mit möglichen Nachkommastellen (float). Dabei muss der Punkt als Kommazeichen[4] verwendet werden:
$x=(float)readline("Gib eine ganze Zahl ein: " );
echo "Deine Zahl war: ",$x;
?>
Gibt man 4.8 ein, so wird auch die Zahl 4.8 als echte Kommazahl vom Programm übernommen. Die Eingabe 4,8 jedoch führt dazu, dass das Programm nur die 4 übernimmt. Die Eingabe von Texten, die PHP nicht als Zahl deuten kann, führt weiterhin dazu, dass PHP dies als Zahl 0 deutet.
Eine Feldvariable in PHP eingeben
Mit der Funktion explode ist es auch möglich, die einzelnen Elemente einer Feldvariablen[5] einzugeben. In der Klammer nach dem Wort explode gibt man in Hochkommas zunächst das getrennte Trennzeichen ein, dann schreibt man nach einem Komma immer die Funktion readline:
$feldvariable=explode(' ',readline());
print_r($feldvariable);
?>
Wenn man das Programm startet, kann man zum Beispiel die Zahlen 2, 3 und 9 eingeben. Dabei muss man die Zahlen durch ein Leerzeichen trennen. Der Befehlt print_r gibt dann den Inhalt der so gefüllten Feldvariablen aus. Siehe auch PHP explode ↗
Fußnoten
- [1] Um die Beispiele auszuführen kann man sie in eine einfache Textdatei eingeben. Die Textdatei kann die Dateindung .php tragen, muss es aber nicht. Wichtig ist, dass die erste Zeile der Textdatei die Zeichenfolge . In einer Shell-Umgebung kann man die Datei dann aufrufen mit den Befehl .php
- [2] Variablen in PHP erkennt man an dem Dollarzeichen am Anfang des Namens. Siehe auch Variablen ↗
- [3] Die -4 oder die 0 oder die 9 sind ganze Zahlen. Ganz nennt man alle Zahlen, die man als Dezimalzahl ohne Komma schreiben kann. Dazu gehören auch die negativen Zahlen. Siehe auch ganze Zahl ↗
- [4] Die Eingabe 4.8 gibt auch die Zahl 4.8. Gibt man 4,8 ein, macht PHP daraus die Zahl 4. Siehe auch Kommazeichen ↗
- [5] Eine Feldvariable, auf Englisch kurz array, ist eine Variable, die mehrere, logisch voneinander getrennte Elemente speichern kann. Siehe auch PHP Feldvariable ↗