|  | Posted by Aetherweb on 03/21/07 15:06 
On Mar 21, 12:42 pm, A...@flasemi.com wrote:> I'm trying to pull data from a website and read it into a file the I
 > can parse.  I've done the before to site without post variables but I
 > can seem to get my statments to work with the post.  Can someone help
 > me out?
 > below is the code I have so far.  Thank in advance...
 >
 
 Here's some code I've used for this... change the port default to 80
 if you don't work over SSL... original version of this code was copied
 from somewhere, I forget where:
 
 function HTTPS_Post($URL, $dat, $referrer="")
 {
 // parsing the given URL
 $URL_Info=parse_url($URL);
 
 // Building referrer
 if($referrer=="") // if not given use this script as referrer
 $referrer=$_SERVER["SCRIPT_URI"];
 
 // making string from $data
 foreach($dat as $key=>$value) $values[]="$key=".urlencode($value);
 $data_string=implode("&",$values);
 
 // Find out which port is needed - if not given use standard (=443)
 if(!isset($URL_Info["port"])) $URL_Info["port"] = 443;
 
 // building POST-request:
 $request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
 $request.="Host: ".$URL_Info["host"]."\n";
 $request.="Referer: $referer\n";
 $request.="Content-type: application/x-www-form-urlencoded\n";
 $request.="Content-length: ".strlen($data_string)."\n";
 $request.="Connection: close\n";
 $request.="\n";
 $request.=$data_string."\n";
 
 $result  = '';
 if ($fp = fsockopen("ssl://" . $URL_Info["host"], $URL_Info["port"],
 $errno, $errstr, 2.0))
 {
 fputs($fp, $request);
 $started = time;
 while((!feof($fp)) and ((time - $started) < 5))
 {
 $result .= @fgets($fp, 128);
 }
 fclose($fp);
 }
 return $result;
 }
  Navigation: [Reply to this message] |