popen

(PHP 4, PHP 5, PHP 7)

popenÖffnet einen Prozesszeiger

Beschreibung

popen ( string $command , string $mode ) : resource

Öffnet eine Verbindung zu einem Prozess, der durch das Kommando command ausgeführt wurde.

Parameter-Liste

command

Das Kommando

mode

Der Modus

Rückgabewerte

Gibt einen Dateizeiger zurück, der identisch ist mit dem, der bei der Funktion fopen() zurückgegeben wird, außer dass dieser nur in eine Richtung funktioniert (entweder lesend oder schreibend) und mit der Funktion pclose() geschlossen werden muss. Dieser Zeiger kann mit den Funktionen fgets(), fgetss() und fwrite() benutzt werden. Ist der Modus 'r', ist der zurückgegebene Dateizeiger das STDOUT des Kommandos; ist der Modus 'w', ist der zurückgegebene Dateizeiger das STDIN des Kommandos.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben.

Beispiele

Beispiel #1 popen() Beispiel

<?php
$handle 
popen("/bin/ls""r");
?>

Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine gültige Ressource zurückgegeben. Das mag seltsam erscheinen, ist aber sinnvoll; es ermöglicht Ihnen, auf von der Konsole zurückgegebene Fehlermeldungen zuzugreifen:

Beispiel #2 popen() Beispiel

<?php
error_reporting
(E_ALL);

/* Umleitung hinzufügen, sodass wir stderr erhalten können */
$handle popen('/path/to/spooge 2>&1''r');
echo 
"'$handle'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;
pclose($handle);
?>

Anmerkungen

Hinweis:

Wenn Sie bidirektionale Unterstützung wünschen, verwenden Sie proc_open().

Hinweis: Mit aktiviertem Safe Mode können Sie nur Programme ausführen, die im Verzeichnis liegen, das mit safe_mode_exec_dir angegeben wurde. Aus praktischen Gründen ist es gegenwärtig nicht erlaubt, dass der Pfad zu einem Programm .. enthält.

Warnung

Mit aktiviertem Safe Mode wird der Kommandostring mit escapeshellcmd() kodiert. Deshalb wird echo y | echo x zu echo y \| echo x.

Siehe auch

  • pclose() - Schließt einen Prozess-Dateizeiger
  • fopen() - Öffnet eine Datei oder URL
  • proc_open() - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe