Loading:


    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



    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. 

     

    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





    Napisz Artyku³

    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
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors