Re: Help with exec.

From: Date: Wed, 03 Mar 2010 14:08:23 +0000
Subject: Re: Help with exec.
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-302510@lists.php.net to get a copy of this message
On 03/03/2010 13:01, Paul Halliday wrote: > I need to pipe some data to an external application. > > I have this: > > while ($row = mysql_fetch_array($theData[0])) { > $src_ip[] = $row[0]; > $dst_ip[] = $row[1]; > $sig_desc[] = $row[2]; > > $rec ++; > if ( $rec == $recCount ) { > break; > } > } > > for ($i = 0; $i < sizeof($src_ip); $i++) { > $tmpResult[] = "$sig_desc[$i],$src_ip[$i],$dst_ip[$i]\n"; > } > > > The external program is called like: > > cat results.csv | theprogram outputfilename > > Is there a way mimic this w/o outputting $tmpResult to a file first? > > Thanks. > Hi, I have used this code to feed data to gpg and read back the encrypted result, Im sure you can adapt it to your needs. function Encrypt($data){ # http://www.theoslogic.com/scripts/php-gpg/ $gpg_command="/usr/bin/gpg $parameters"; $errLog = "/tmp/errors.log"; $dspecs = array( 0=>array("pipe", "r"), 1=>array("pipe", "w"), 2=>array("file", $errLog, "a") ); $encrypted=""; $procdata=""; $gpgproc = proc_open($gpg_command, $dspecs, $pipes); if (is_resource($gpgproc)) { fwrite($pipes[0], $data); fclose($pipes[0]); while($procdata = fgets($pipes[1], 1024)) { $encrypted .= $procdata; } fclose($pipes[1]); } return $encrypted; } It works really well. Regards Ian --

« previous php.general (#302510) next »