proc_open
resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )
Jest podobna do popen() ale dostarcza znacznie większy stopień kontroli nad wykonywanym programem
Jest podobna do popen() ale dostarcza znacznie większy stopień kontroli nad wykonywanym programem
Parametry
- cmd - Komenda do wykonania
- descriptorspec - Indeksowana tablica gdzie klucz reprezentuje numer hasła a wartość reprezentuje jak PHP dostarcza to hasło do dziecka procesu.
0 - stdin (wejście), 1- stdout (wyjscie), podczas gdy 2- stdrr.
Każdy element może być:
Tablicą opisującą kanał przejścia do procesu. Pierwszym element jest hasło Typ, drugim elementem jest opcja dla danego typu. Ważnymi typami są kanał i plik
Strumień źródła reprezentującego prawdziwe hasło plik (np. otwarcie pliku, gniazda, STDIN)
Liczba hała plik jest nie ograniczone do 0, 1 i 2- możesz określić każdą ważną liczbę plik i zostanie ona przekazana do dziecka porcesu. To pozwala skryptowi na interpretacje w inych skryptach jako "co-processes".
W praktyce, jest to użyteczne dla przychodzącego hasła do programów takich jak PGP, GPG, openssl w bardziej bezpieczny sposób. Jest też użyteczne dla odczytu informacji dostarczanych za pomocą tamtych programów przez te programy pomocnicze na deskryptorów plików.
Tablicą opisującą kanał przejścia do procesu. Pierwszym element jest hasło Typ, drugim elementem jest opcja dla danego typu. Ważnymi typami są kanał i plik
Strumień źródła reprezentującego prawdziwe hasło plik (np. otwarcie pliku, gniazda, STDIN)
Liczba hała plik jest nie ograniczone do 0, 1 i 2- możesz określić każdą ważną liczbę plik i zostanie ona przekazana do dziecka porcesu. To pozwala skryptowi na interpretacje w inych skryptach jako "co-processes".
W praktyce, jest to użyteczne dla przychodzącego hasła do programów takich jak PGP, GPG, openssl w bardziej bezpieczny sposób. Jest też użyteczne dla odczytu informacji dostarczanych za pomocą tamtych programów przez te programy pomocnicze na deskryptorów plików.
-
- pipes - Będzie ustawiony na indeksowaną tablicę plików odpowiadających końcowemu PHP każdego utworzonego kanału
-
- cwd - Początkowy katalog roboczy dla komendy. Mysi być bezpośrednią ścieżką do katalogu, lub NULL jeśli chcesz użyć wartości domyślenej
env - Tablica ze zmiennymi środowiskowymi dla komendy do odpalenia, lub NULL aby użyć tego samoge środowiska jako bieżącego prodcesu PHP
other_options - Pozwala na określenie dodatkowych opcji. Obecnie wspierane opcje obejmują:
- suppress_errors (tyko windows): pomija błędy generowane przez tą funkcję jeśli ustawiony na TRUE
- bypass_shell (tylko windows): omija shel cmd.exe jeśłi ustawiony na TRUE
- context: strumień użyty gdy otwiera plik (utworzony w stream_context_create() )
- binary_pipes: otwiera kanał w trybie binarnym, zamiast przy użyciu zwykłej stream_encoding
Zwracane wartości
Zwraca źródło reprezentujące proces, któy powinien być uwolniony za pomocą proc_close() kiedy z nim skończysz. W przypadku błędu zwraca FALSE
Listing
//Przykład #1 A proc_open() example
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$cwd = '/tmp';
$env = array('some_option' => 'aeiou');
$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
// $pipes teraz wygląda tak:
// 0 => zapisywalny uchwyt połączenia do dziecka STDIN
// 1 => odczytywalny uchwyt połączenia do dziecka STDOUT
// Każdy błąd wyjścia zostanie dołączony do /tmp/error-output.txt
fwrite($pipes[0], '<?php print_r($_ENV); ?>');
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// Jest to ważne jeśli zamkniesz wszystkei kanały przed wywołaniem
// proc_close aby uniknąć impasu
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
?>
//Powyższy przykład wyświetli coś podobnego do:
Array
(
[some_option] => aeiou
[PWD] => /tmp
[SHLVL] => 1
[_] => /usr/local/bin/php
)
command returned 0
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno