comment faire pour obtenir une sortie de proc_open()
J'ai essayé d'obtenir en sortie de proc_open
méthode en php, mais, lorsque j'imprime, je suis vide.
$descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("fichier", "files/temp/error-output.txt", "a") ); $process = proc_open("le temps ./un un.de", $descriptorspec, $pipes, $cwd);
aussi longtemps que je le sais, je peux obtenir la sortie avec stream_get_contents()
echo stream_get_contents($pipes[1]); fclose($pipes[1]);
Mais je ne peux pas le faire..
toute suggestion?
Thx avant...
Haha, ton code m'a fait comprendre comment proc_open œuvres.
haha, contente de savoir que.. 🙂
haha, contente de savoir que.. 🙂
OriginalL'auteur Bobby Stenly | 2011-05-16
Vous devez vous connecter pour publier un commentaire.
Votre code plus ou moins fonctionne pour moi.
time
imprime sa sortie àstderr
donc, si vous êtes à la recherche pour que la production, regardez dans votre dossierfiles/temp/error-output.txt
. Lestdout
pipe$pipes[1]
ne contient que la sortie du programme./a
.Ma repro:
OriginalL'auteur e.dan
c'est un autre exemple avec
proc_open()
.Je suis à l'aide de Win32 ping.exe commande dans cet exemple. CMIIW
Espère que cette aide =)
Pour résumer: "flush() peut ne pas être en mesure de remplacer le tampon de régime de votre serveur web et il n'a pas d'effet sur le côté client de la mémoire dans le navigateur. Il également n'a pas d'incidence sur le PHP de l'utilisateur, le tampon de sortie du mécanisme. Cela signifie que vous aurez à appeler à la fois ob_flush() et flush() pour vider l'ob tampons de sortie si vous utilisez ceux-ci. "Source: php.net/manual/en/function.flush.php
OriginalL'auteur Didit Dwianto