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?
$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);
}