Re: Re: Pass variable to pcntl_fork child

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/02/2014 07:41 AM, Jim Giner wrote:
On 7/2/2014 5:40 AM, Uggla Henrik wrote:
Hi!

I've tried the following code but the $call variable is not available in the
pcntl_fork child. Searching the web, I've found posts that claim that all
variables defined before pcntl_fork are copied to the child. I've also found
posts that claim that no variables are passed/copied to the child. So, which
of them is true and how should I correct my code to make it work?

regards
Henrik



     $call = str_replace('@@', '&', $_GET['call']);

     if ($pid = pcntl_fork())
     {
         $previousCalls=file("calls.txt", FILE_IGNORE_NEW_LINES |
FILE_SKIP_EMPTY_LINES);
         if (!in_array($call, $previousCalls))
         {
             file_put_contents("calls.txt", $call."\n", FILE_APPEND);
         }
     }
     else
     {
         function displayUrl($url)
         {
             $ch = curl_init($url);
             curl_setopt ( $ch, CURLOPT_HEADER, 1);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             $curlResult = curl_exec($ch);
             curl_close($ch);
             list($headers,$content) = explode("\r\n\r\n",$curlResult,2);
             foreach (explode("\r\n",$headers) as $hdr)
             {
                 if ($hdr != 'Transfer-Encoding: chunked')
                 {
                     header($hdr);
                 }
             }
             echo $content;
         }
         displayUrl($call);
     }

1 What's a child?

If you don't understand this, please read this page:

http://www.php.net/manual/en/function.pcntl-fork.php

2 You must use == in your if condition.

Look at the first example on the above page.

3 ??? Why do you have a function defined in your else clause???

The only reason I can think of would be to isolate the inside code from the work. But, this could also lead to the missing variable issue the OP is asking about.


--
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux