|
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]
|