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;
}