Podręcznik PHP
Poprzedni |  | Następny

# popen

(PHP 3, PHP 4, PHP 5)

popen -- Otwiera wskaźnik pliku do procesu

## Opis

resource popen ( string polecenie, string tryb )

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`.

> Notatka: 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); ?>`

> Notatka: Jeśli tryb bezpieczny został włączony, możliwe jest wykonywanie programów tylko z katalogu określonego przez safe_mode_exec_dir. Ze względów praktycznych, nie można podawać elementów .. w ścieżce do pliku wykonywalnego.

Ostrzeżenie
Jeśli włączony jest tryb bezpieczny, ciągi zawierające polecenia są filtrowane przez funkcję escapeshellcmd(). W związku z tym, echo y | echo x staje się echo y \| echo x.

Patrz także pclose(), fopen() i proc_open().

Poprzedni | Spis treści | Następny
pclose | Początek rozdziału | readfile