function spawn($page, $log = false)
{
$logger = Pommo::$_logger;
/* Convert illegal characters in url */
$page = str_replace(' ', '%20', $page);
$errno = '';
$errstr = '';
// NOTE: fsockopen() SSL Support requires PHP 4.3+ with OpenSSL compiled in
$ssl = Pommo::$_ssl ? 'ssl://' : '';
$out = "GET {$page} HTTP/1.1\r\n";
$out .= "Host: " . Pommo::$_hostname . "\r\n";
//$out .= 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204\r\n';
//$out .= "Keep-Alive: 300\r\n";
//$out .= "Connection: keep-alive\r\n";
//$out .= "Referer: Pommo::$_http\r\n";
// to allow for basic .htaccess http authentication,
// uncomment and fill in the following;
// $out .= "Authorization: Basic " . base64_encode('username:password')."\r\n";
$out .= "Connection: Close\r\n\r\n";
$spawnPage = $out;
$logger->addMsg('Attempting to spawn ' . ($ssl ? 'https://' : 'http://') . Pommo::$_hostname . ':' . Pommo::$_hostport . $page, 2, TRUE);
$socket = fsockopen($ssl . Pommo::$_hostname, Pommo::$_hostport, $errno, $errstr, 25);
// LOG SPAWN ATTEMPTS TO FILE *TEMP, DEBUG*
if ($log || Pommo::$_debug) {
if (is_file(Pommo::$_workDir . '/SPAWN_0')) {
copy(Pommo::$_workDir . '/SPAWN_0', Pommo::$_workDir . '/SPAWN_1');
}
if ($handle = fopen(Pommo::$_workDir . '/SPAWN_0', 'w')) {
fwrite($handle, $out);
fclose($handle);
}
}
if ($socket) {
fwrite($socket, $out);
sleep(1);
fclose($socket);
// spawned script must have ignore_user_abort, eh? ;)
} else {
$msg = time() . ' >>> Error Spawning Page! ** Errno : Errstr: ' . $errno . ' : ' . $errstr;
$logger->addMsg($msg, 3, TRUE);
trigger_error($msg);
return false;
}
return true;
}