title: PHP set proc_open to output directly to user
body: <p>I'm using proc_open with pdftk to pre-fill some forms with data, this works pretty well, but rather than save the result to a file and then read the file back, I'd like to print the file directly out.   I've got this working so I'm not having any problems.  But I'd like to direct the output of proc_open directly to the stream returned to the user so that I don't have to hold the value in memory in php.  So far I have the following: </p>
  
  <pre><code>$descriptorspec = array(
  0 =&gt; array("pipe","r"),
  1 =&gt; array("pipe","w"),
  2 =&gt; array("file","error.txt","a") );
  $process = proc_open($command, $descriptorspec, $pipes);
  if( is_resource( $process ) ) {
    fwrite($pipes[0], $fdf);
    fclose($pipes[0]);
    echo stream_get_contents($pipes[1]));
    fclose($pipes[1]);
    proc_close($process);
  }
  </code></pre>
  
  <p>I'd like to direct the result directly out to the use as you would get in the above code, without actually saving the value in a variable and then printing it out.  Is there a way to direct a stream in php's output directly to the output.  I'd like to do this to save memory and reduce the time it takes for the code to run. </p>
  
  <p>Does anyone know of a function for a stream in php that prints the stream result directly out.  Or is there a setting for proc_open that does this.  Either way I fear this may not work at all, as I may need to add a content-length header to the output to display the PDF directly.  If anyone knows of the function to print the stream directly out, is there also a way to get the byte length of the stream without actually reading it in.  </p>