PHP konsol çıktısını oku

2 Cevap php

Tamam, bu yüzden burada bir şey var. Ben çıktı (genellikle bir linux konsolda gördüğünüz bir) okumak gerekir. Benim en büyük sorunum ben bir doğrusal yürütme çıkışını okumak gerekir, değil wget http://ubuntu.com/jaunty.iso gibi bir şey ve ETA görünmüyor olmasıdır.

Ayrıca, iş akışı aşağıdadır:

S - webserver

C 1 - S adlı intranet computer1

C 2 - S intranet bilgisayar 2

ve benzerleri.

Kullanıcı S ki C x sonra wget, top veya diğer konsol günlük komutu başlar bağlanır bağlanır (kullanıcının isteği üzerine). wget belirli bir hedefi İndirilirken Kullanıcı C x gelen "konsol günlüğünü" görebilirsiniz.

Bu mantıklı mı? Bir sunucu / istemci yazılımı kullanmadan yapılabilir mi?

Teşekkürler!

2 Cevap

Eğer dışarı std, sen konsolda olsaydı normalde klavyeye bağlı olacağını, hangi stdin (boru bir dizi belirtmek ve stderr olabilir - Bunun için php fonksiyonu proc_open kullanmak isteyeceksiniz , hem normal) ekrana basılacaktır. Daha sonra verilen programın giriş / çıkış folw kontrol edebilirsiniz

Bir örnek olarak So:

$pipes = array();
$pipe_descriptions = 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
);

$cmd = "wget $url";

$proc_handle = proc_open($cmd, $pipe_descriptions, $pipes);

if(is_resource($proc_handle))
{
   // Your process is running. You may now read it's output with fread($pipes[1]) and fread($pipes[2])
   // Send input to your program with fwrite($pipes[0])
   // remember to fclose() all pipes and fclose() the process when you're done!

Eğer üzerinde çalıştığınız bazı mevcut PHP kodu var mı?