<?php
/*
param2str: Turns named-key parameter array into POST/GET string
*/
function param2str($paramArray)
{
if( count($paramArray) < 1 ){
return '';
}
$retVal = '';
$vals = array();
// Blank string first, now we build like this
// key=value&key=value&key=value
foreach($paramArray as $key=>$val)
{
$vals []= "$key=$val";
}
$retVal = implode('&', $vals);
return $retVal;
}
/*
COMMAND LINE JUNK
*/
if($argc < 2){
die("This command must be run with a service tag as the first argument.\n");
}
if(strlen($argv[1]) != 7){
die("Service tags must be 7 characters in length.\n");
}
if(preg_match('/[^a-z^A-Z^0-9]/', $argv[1])){
die("Invalid character detected in service tag. Service tags can only be alphanumerics.\n");
}
$service_tag = $argv[1];
/*
Original URL is http://www.dell.com/support/troubleshooting/us/en/555/ProductSelector
Initial search POST hits http://www.dell.com/support/productselector/us/en/555/Select/SetSVCTag
*/
// Service Tag Search POST
// This just sorta sets up our cookie jar with the service tag embedded
$tag_post_url = "http://www.dell.com/support/productselector/us/en/555/Select/SetSVCTag";
$tag_search_referer = "http://www.dell.com/support/productselector/us/en/555/Select/ProductSelectorHome?SelectMode=FullMode";
$search_post_parms = array(
"ServiceTagCode" => $service_tag
);
// Build cURL request
$curl_tag_search = curl_init($tag_post_url);
$curl_tag_opts = curl_setopt_array( $curl_tag_search,
array(
CURLOPT_COOKIESESSION => true,
CURLOPT_USERAGENT => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13",
CURLOPT_COOKIEFILE => "cookies.txt",
CURLOPT_COOKIEJAR => "cookies.txt",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => param2str($search_post_parms),
));
$output = curl_exec($curl_tag_search);
curl_close($curl_tag_search);
// Pull drivers page now
$drivers_url = "http://www.dell.com/support/drivers/us/en/555";
//$drivers_referer ="http://www.dell.com/support/troubleshooting/us/en/555/Index";
$curl_drivers = curl_init($drivers_url);
$curl_drivers_opts = curl_setopt_array( $curl_drivers,
array (
CURLOPT_COOKIESESSION => true,
CURLOPT_USERAGENT => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13",
CURLOPT_COOKIEFILE => "cookies.txt",
CURLOPT_COOKIEJAR => "cookies.txt",
CURLOPT_RETURNTRANSFER => true,
));
$output = curl_exec($curl_drivers);
curl_close($curl_drivers);
// Now search $output for download URLs and whatnot.
?>