Ok, here's what I've got and it's driving me insane. What I want to do
is take a tracking number and grab the tracking data from the UPS web
site. I have a couple of questions though....
First of all, does anyone know if this is against UPS' TOS? I read it
but I didn't really see anything, of course IANAL, so I might have
missed something.
Second, I assume this is best done using CURL. I can get the shipment
information just fine, but when I try to use the POST method to get the
"Detailed Information" it does not display any of the detailed info,
just some of the UPS page with some broken images. I'm not concerned
about getting images or anything else to show up, all I want is to be
able to grab the data from the source. Here's my code....any help
would be greatly appreciated....
//This function gets the data....all you need is the tracking number
function GetUPSTrackingInfo($TrackingNumber1, $TrackingNumber2,
$TrackingNumber3, $TrackingNumber4, $TrackingNumber5) {
$TrackingNumber1=str_replace(" ","",$TrackingNumber1);
$TrackingNumber2=str_replace(" ","",$TrackingNumber2);
$TrackingNumber3=str_replace(" ","",$TrackingNumber3);
$TrackingNumber4=str_replace(" ","",$TrackingNumber4);
$TrackingNumber5=str_replace(" ","",$TrackingNumber5);
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, "http://my.proxy.server:3128");
curl_setopt($ch,
CURLOPT_URL,"http://wwwapps.ups.com/WebTracking/processInputRequest?HTML
Version=5.0&sort_by=status&term_warn=yes&tracknums_displayed=5&TypeOfInq
uiryNumber=T&loc=en_US&InquiryNumber1=$TrackingNumber1&InquiryNumber2=$T
rackingNumber2&InquiryNumber3=$TrackingNumber3&InquiryNumber4=$TrackingN
umber4&InquiryNumber5=$TrackingNumber5&AgreeToTermsAndConditions=yes&tra
ck.x=30&track.y=4");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;
}
function PostCurlPage ($pageSpec, $data) {
$TrackingNumber=str_replace(" ","",$TrackingNumber);
$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)";
$header[] = "Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai
n;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1";
$header[] = "Pragma: no-cache";
$header[] = "Connection: keep-alive";
$header[] = "Referrer:
http://wwwapps.ups.com/WebTracking/processInputRequest";
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_PROXY, "http://my.proxy.server:3128");
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$tmp=curl_exec ($ch);
curl_close ($ch);
//return $tmp;
echo "$tmp";
}
$data="TypeOfInquiryNumber=T&tracknums_displayed=5&HTMLVersion=5.0&Agree
ToTermsAndConditions=yes&loc=en_US&sort_by=status&line1=DataSpecificToTr
ackingNumber&NumberDetailLines=1&tdts1_x=18&tdts1_y=10";
PostCurlPage("http://wwwapps.ups.com/WebTracking/processRequest",$data);
This doesn't work....I can't seem to figure it out. I took out
DataSpecificToTrackingNumber...but if you need it I'll send it your way.
GetUPSTrackingInfo("TheTrackingNumber","","","",""); Works just fine...
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php