+ $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("pipe", "w") // stderr is a file to write to
+ );
+ $cwd = '/tmp';
+ $env = array();
+ $process = proc_open($cmd, $descriptorspec, $pipes, $cwd, $env);
+ if (is_resource($process)) {
+ fwrite($pipes[0],$string);
+ fclose($pipes[0]);
+ $data = stream_get_contents($pipes[1]);
+ fclose($pipes[1]);
+ fclose($pipes[2]);
+ $proc_result = proc_close($process);
+ }
+
+ if (!$proc_result) {
+ return $data;
+ } else {
+ return '';
+ }