Don Read wrote:
> On 13-Jul-01 Jeff Hill wrote:
> > Don Read wrote:
> >> On 13-Jul-01 Jeff Hill wrote:
> >> > I've tried everything I can to pipe a string with mime content to
> >> > metamail, but it fails in every variation of:
> >> >
> >> > exec("echo $mime_string | /usr/bin/metamail -d -q -r -w -x -y ",
> >> > $met_res) ;
> >>
> >>  what about "/bin/echo ..."
> >
> > Nope, but I do appreciate the thought. Using "/bin/echo" just results in
> > $met_res becoming an empty array, as does my example string.
> >
> 
> Huh ?

 
> $cmd='/bin/echo'  ." $mime_string | /usr/bin/metamail -d -q -r -w -x -y ";
> echo ' cmd is:<br>', $cmd, '<p>';
> fpassthru($cmd);


Well, I really do appreciate the help; maybe I'm misunderstanding
something. Using your statement above and executing the php script from
bash, I first get the results of your echo statement:

  cmd is:<br>/bin/echo 
  . . . then the $mime_string, and then on the last line, 
  | /usr/bin/metamail -d -q -r -w -x -y <p><br>

After your echo statement, the fpassthru($cmd) results come back: 

<b>Warning:</b> Supplied argument is not a valid File-Handle resource in
<b>./mimescript_test.php</b> on line <b>9</b><br>

The entire contents of this mimescript_test.php are:
---------------------------------------------------
#!/usr/local/bin/php -q
<?php
 
$fp0 = fopen('php://stdin','r') or die("couldnt open stdin"); 
while(!feof($fp0)) {
        $mime_string .= fgets($fp0,4096);
}
$cmd='/bin/echo'  ." $mime_string | /usr/bin/metamail -d -q -r -w -x -y
";
echo ' cmd is:<br>', $cmd, '<p>';
fpassthru($cmd);
?>
----------------------------------------------------

As it seems fpassthru is supposed to work with the file pointer rather
than string, I did try using $fp0 rather than $mime_string, but I got
"not a valid File-Handle resource".

If I substitute exec for fpassthru and add a $return to capture what
comes back, I get an empty array (I get a response of "Array" when
attempting to echo the $return variable, when I echo $return[0], etc., I
get nothing.

If I substitute system for fpassthru, I get only "127" when I echo the
$return.

I'm not the expert, but it certainly seems the problem lies in getting
the /bin/echo command pipe the string to metamail, and I'm not certain
how to make it do so.

Regards,

Jeff Hill

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to