Otwiera potok do procesu uruchomionego przez rozwidlenie polecenia (ang. forking) podanego w parametrze polecenie.
Zwraca wskaźnik pliku identyczny do tego zwracanego przez fopen() z wyjątkiem tego, że jest on jednokierunkowy (może być tylko użyty do odczytu lub zapisu) i musi być zamknięty za pomocą pclose(). Wskaźnik ten może być użyty z fgets(), fgetss() i fwrite().
W przypadku błędu, zwraca FALSE.
Informacja: Jeśli szukasz dwukierunkowej obsługi (w obie strony), użyj proc_open().
Przykład #1 popen() przykład
<?php
$uchwyt = popen("/bin/ls", "r");
?>
Jeśli polecenie uruchamiane nie może zostać znalezione, poprawny zasób jest zwracany. To może wydawać się dziwne, ale ma sens; pozwala tobie na dostęp do wszystkich informacji o błędach zwracanych przez powłokę.
<?php
error_reporting(E_ALL);
/* Dodanie przekierowania, aby móc dostać stderr. */
$uchwyt = popen('/sciezka/do/czegos 2>&1', 'r');
echo "'$uchwyt'; " . gettype($uchwyt) . "\n";
$czytaj = fread($uchwyt, 2096);
echo $czytaj;
pclose($uchwyt);
?>
Listing
Ranga: Administrator serwisu Punktów: 0