Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

popen

Dateisystem-Funktionen

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


    Parameter-Liste:
NameBeschreibung
commandDen Befehl
modeDer Modus

    Rückgabewerte:
Gibt einen Dateizeiger identisch mit der von fopen() zurück, ausser dass es unidirektional (nur zum Lesen oder Schreiben verwendet werden) und muss mit pclose() geschlossen werden. Dieser Zeiger kann mit fgets() , fgetss() und fwrite() verwendet werden. Wenn der Modus 'r' ist, entspricht der zurück-DateiZeiger auf den STDOUT des Befehls, wenn der Modus 'w', entspricht der zurückgegebene Dateizeiger auf den STDIN des Befehls.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben.

    Beschreibung:
Mit popen() wird eine Verbindung zu einem Prozess geöffnet, welcher durch die Anweisung (command) im angegebenen Modus (mode) ausgeführt wird.

Folgende Werte sind für mode zulässig:
• r nur lesen
• w nur schreiben

Diese Funktion gibt wie fopen() einen Zeiger zurück, welcher weiter genutzt werden kann, etwa für Lese- und Schreiboperationen. Im Fehlerfall ist das Funktionsergebnis false.

Es ist darauf zu achten, dass der mit popen() geöffnete Dateizeiger mit pclose() wieder geschlossen wird.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Hinweis:
Hinweis:


Wenn Sie für die bidirektionale Unterstützung suchen (Zweiweg), verwenden Sie proc_open().
Wenn Safe Mode aktiviert ist, können Sie nur Dateien ausführen innerhalb der safe_mode_exec_dir. Aus praktischen Gründen ist es momentan nicht erlaubt, .. Komponenten in der Pfad zur ausführbaren Datei.


    Warnung:
Warnung:

Wenn der abgesicherten Modus aktiviert ist, wird der Befehl String mit escapeshellcmd(). So echo y | echo x wird echo y \| echo x.


    Siehe auch:
Schliesst einen Prozess-Dateizeiger
 
•  fopen()
Öffnet eine Datei oder URL
 
Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
 

popen() - Beispiel:


Eingabe:
<?php
$handle = popen ("/bin/ls", "r");
?>

popen() - Beispiel 2:


Eingabe:
Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine gültige Ressource zurückgegeben. Das mag seltsam erscheinen, macht aber Sinn. Es ermöglicht Ihnen, auf von der Shell zurückgegebene Fehlermeldungen zuzugreifen:


<?php
error_reporting(E_ALL);

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

Dateisystem-Funktionen