$v) { $str .= "$k=$v"; } $str .= $secret; return md5($str); } static function get_http_header_value($header, $name) { $start_pos = stripos($header, $name); $start_pos += strlen($name) + 2; $value = substr($header, $start_pos); $end_pos = strpos($value, "\r\n"); $value = substr($header, $start_pos, $end_pos); return $value; } static function do_fb_method($fb_secret, $params) { $facebook_api_host = 'api.facebook.com:80'; $sig = FBUtil::generate_sig($params, $fb_secret); $params['sig'] = $sig; $eol="\r\n"; $boundary = md5(time()); // build content string $data = '--'.$boundary.$eol; foreach($params as $name => $value) { $data .= "Content-Disposition: form-data; name=\"$name\"".$eol.$eol.$value.$eol.'--'.$boundary.$eol; } $content_length = strlen($data); // send request to facebook $headers = "POST /restserver.php HTTP/1.0".$eol. "Host: ".$url['host'].$eol. "Referer: ".$url['protocol'].$url['host'].$url['path'].$eol. "Content-Type: multipart/form-data; boundary=".$boundary.$eol. "Content-Length: $content_length".$eol. "MIME-version: 1.0".$eol. $eol.$data.$eol.'--'; $fp = fsockopen($facebook_api_host, 80, $errno, $errstr, 30); if($fp) { fputs($fp, $headers); $result = ''; while(!feof($fp)){ $result .= fgets($fp, 128); } fclose($fp); if ($remove_headers == true) { //removes headers // don't know regex super-well, but this should work just fine $header_end = strpos($result, "\r\n\r\n"); $header_end += 4; $result = substr($result, $header_end); } return $result; } } } ?>