and its that easy!
it took me a minute to figure out; but all I had to do was:
if (is_resource($process)) {
for ($i = 0; $i < sizeof($src_ip); $i++) {
fwrite($pipes[0], "$sig_desc[$i],$src_ip[$i],$dst_ip[$i]\n");
}
fclose($pipes[0]);
fclose($pipes[1]);
proc_close($process);
}
thanks.
On Wed, Mar 3, 2010 at 10:08 AM, Ian <[email protected]> wrote:
> 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
> --
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php