PHP-Programmierung unter Linux

PHP-Code eignet sich auch für das Programmieren mit Kommandozeilen auf Linux-Systemen. Der Artikel zeigt, wie mit PHP-Scripts unter Linux Eingaben gelesen und Dateien bearbeitet werden können.

Die Tage, als Perl die Skriptsprache der Wahl für das Programmieren mit Kommandozeilen auf Linux-Systemen war, sind vorbei. Heutzutage steht eine ganze Anzahl von Programmiersprachen zur Verfügung, darunter Python, Ruby und PHP. Wer bereits PHP-Code für Websites schreibt und sich in der Sprache auskennt, wird PHP auf der Kommandozeile schnell und leicht einsetzen können.

Die wichtigsten Funktionen, die eine Programmiersprache in einem Skript auszuführen hat, sind die Dateienverarbeitung und die Aufnahme von Nutzereingaben. PHP geht hier ebenso konventionell zu Werke wie alle anderen Skriptsprachen.

Sollen zum Beispiel PHP-Nutzereingaben während der Ausführung eines Skripts gelesen werden, findet folgender Code Anwendung:

#!/usr/bin/php
<?php
function read_input()
{
$fp    = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
printf("Please supply your name: ");
$name = read_input();
printf("\nHello, $name.\n");
?>

Die oben definierte Funktion read_input() übernimmt Eingaben aus STDIN, speichert sie in der Variable $input, entfernt sämtlichen davor und dahinter liegenden Durchschuss und gibt sie wieder aus. Das gleiche Prinzip kann angewandt werden, um normale Dateien zu lesen und zu bearbeiten. Man bedenke, dass STDIN für Linux einfach nur eine Datei ist (daher wird im Beispiel oben /dev/stdin geöffnet).

#!/usr/bin/php
<?php
if (file_exists($argv[1]))
{
$file = $argv[1];
} else {
printf("ERROR: File '$file' does not exist!\n");
exit 1;
}
$data = file($file);
$c    = 1;
foreach ($data as $line)
{
printf(sprintf("[%s]: %s", $c, $line));
$c++;
}

Im oben angeführten Beispiel liest das PHP-Skript jede Zeile der in der Kommandozeile angegebenen Datei und gibt sie mit vorangestellter, fortlaufender Zeilennummer wieder aus. Wenn die Datei nicht existiert, druckt das Skript eine Fehlermeldung und wird mit Code 1 beendet. (Dies weist auf einen Fehler hin. Bei normalem Verlauf würde das Skript mit Code 0 beendet.) Die Funktion file() wird hier eingesetzt, da sie jede Zeile der Datei in ein Array einliest (in diesem Fall $data), das dann im Statement foreach() verwendet wird, um das Array einmal pro Zeile in der Datei durchzuarbeiten.

PHP muss nicht mehr nur für Web-Programmierung eingesetzt, sondern kann ohne großen Aufwand auch für das Programmieren mit Kommandozeilen verwendet werden. Dabei ist PHP auch flexibel und schnell. Ebenso kann nahezu alles, was man mit einem Webskript macht, etwa die Bearbeitung von Datenbanken, sehr leicht auch mittels eines Kommandozeilenskripts in PHP erledigt werden.

Fanden Sie diesen Artikel nützlich?
2 von 3 Lesern fanden diesen Artikel nützlich.

Aktuelle Job-Angebote

Lesermeinungen zum Artikel

 
von FirefoxNutzer
am 23. Februar 2009, 14:33 Uhr
Kein Quellcode lesbar.
Im prinzip ein guter Artikel - koennte ich
unter Firefox 3.0.6 nicht nur die Zeile
#!/usr/bin/php
lesen - sondern auch den im Text erwaehnten Quellcode.
 
von ZDNet-Redaktion
am 23. Februar 2009, 15:53 Uhr
AW: Kein Quellcode lesbar.
Danke für Ihren Hinweis. Der Fehler wurde korrigiert.

Die Redaktion

ZDNet.de Live

#Prad ...

#Prada Phone by #LG 3.0 ausgepackt und ausprobiert - #smartphone #android t.co/...

10.02.12, 19:30 von cnet_de
Schon ...

Schon im Test: Prada Phone by LG 3.0 mit Android und superhellem Display t.co/...

10.02.12, 19:30 von cnet_de
Beta ...

Beta von Chrome 18 erweitert Hardwarebeschleunigung t.co/...

10.02.12, 19:30 von zdnet_de
Sage ...

Sage helps chocolate business manage seasonality t.co/...

10.02.12, 19:20 von ZDNet
Colum ...

Columbia University excludes Google Docs t.co/...

10.02.12, 19:20 von ZDNet
Benq ...

Benq bringt XGA-Projektor mit 4000 ANSI-Lumen t.co/...

10.02.12, 19:00 von zdnet_de
Germa ...

Germany postpones ACTA signing in wake of protests t.co/...

10.02.12, 18:45 von ZDNet
Iran ...

Iran cuts off access to popular Web sites t.co/...

10.02.12, 18:40 von ZDNet
Makin ...

Making lame excuses for Microsoft's decision to drop the Start button in Windows 8 t.co/...

10.02.12, 18:40 von ZDNet
Did ...

Did Mark Zuckerberg just Like Mitt Romney on Facebook? t.co/...

10.02.12, 18:35 von ZDNet
Flood ...

Flooding in Thailand will deter hard drive market through Q3 t.co/...

10.02.12, 18:35 von ZDNet
Lenov ...

Lenovo verspricht Android 4.0 für Thinkpad Tablet binnen drei Monaten t.co/...

10.02.12, 18:30 von zdnet_de
Pakis ...

Pakistan sperrt 13.000 "obszöne" Websites t.co/...

10.02.12, 18:10 von zdnet_de
Win 8 ...

Win 8 kurz vor der Consumer Preview: Oberfläche und Apps t.co/...

10.02.12, 18:10 von zdnet_de
#Gadg ...

#Gadget der Woche: #Augmented-Reality-Gewehr AppToy #AppBlaster zu #gewinnen - #ar t.co/...

10.02.12, 18:10 von cnet_de
Iran ...

Iran schaltet Zugriff auf Webmailer und Facebook ab t.co/...

10.02.12, 17:40 von zdnet_de
What ...

What would you do for a $1.2 billion datacenter? t.co/...

10.02.12, 17:35 von ZDNet
Woman ...

Woman who pleaded Fifth in password case now citing Fourth t.co/...

10.02.12, 17:35 von ZDNet
Kodak ...

Kodak to stop making digital cameras, camcorders, and photo frames t.co/...

10.02.12, 17:25 von ZDNet
Fathe ...

Father puts '45 through teen daughter's laptop over Facebook post t.co/...

10.02.12, 17:20 von ZDNet