Re: Pass variable to pcntl_fork child
| From: | helloworldjerry | Date: | Wed, 02 Jul 2014 10:17:55 +0000 |
| Subject: | Re: Pass variable to pcntl_fork child | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-323585@lists.php.net to get a copy of this message | ||
ipc can be used by shared memory, senaphore, queue, socket, unix domain socket etc.
variables should be shared copied to parent and child process both after fork.
u can store some variable at third party storage, like redid, and after that signal child process
where u fetch it back.
And some other ipc means above u can try , too.
--
helloworldjerry
开启 2014年7月2日 at 18:01:20, Uggla Henrik (henrik.uggla@kristianstad.se) 写:
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);
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php