note 69175 modified in ref.curl by danbrown

From: Date: Sun, 17 May 2009 19:22:23 +0000
Subject: note 69175 modified in ref.curl by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-155226@lists.php.net to get a copy of this message
For anyone who is having trouble getting some of the advanced functionality to work in whatever version of PHP you have, I wrote a little wrapper for the command line version of curl. The function below is for Windows (hence, the curl.exe), but it works the same way under Linux or whatever. The curl man page enumerates a ton of options you can use... <?php function curlPageGrabber($destinationURL, $refererURL, $postData, $autoForward = false, $autoGrabCookies = true, $curlDebug = false) { $curlString = "c:\curl\curl.exe -i -v -m 30 -L -b c:\curl\cookiejar.txt -c c:\curl\cookiejar.txt "; $curlString .= " -A \"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322;)\" "; $curlString .= " -H \"Accept-Language: en-us\" "; $curlString .= " -H \"Accept-Encoding: gzip, deflate\" "; $curlString .= " -H \"Host: affiliate-program.amazon.com\" "; $curlString .= " -H \"Accept: */*\" "; $curlString .= " --compressed "; //$curlString .= " --trace-ascii "; if ($refererURL != '') { $curlString .= "-e \"".$refererURL."\" "; } if ($postData != '') { $curlString.= " -d \"$postData\" "; } $curlString .= $destinationURL; if ($curlDebug == true) { echo "<p>curlString: $curlString</p>"; } $temp = exec($curlString, $retval); $htmlData = ''; foreach ($retval as $arrayLine) { $htmlData .= $arrayLine."\r\n"; } if ($curlDebug == true) { echo "<textarea cols=80 rows=20>$htmlData</textarea>"; } return $htmlData; } // end function ?> --was-- For anyone who is having trouble getting some of the advanced functionality to work in whatever version of PHP you have, I wrote a little wrapper for the command line version of curl. The function below is for Windows (hence, the curl.exe), but it works the same way under Linux or whatever. The curl man page enumerates a ton of options you can use... function curlPageGrabber($destinationURL, $refererURL, $postData, $autoForward = false, $autoGrabCookies = true, $curlDebug = false) { $curlString = "c:\curl\curl.exe -i -v -m 30 -L -b c:\curl\cookiejar.txt -c c:\curl\cookiejar.txt "; $curlString .= " -A \"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322;)\" "; $curlString .= " -H \"Accept-Language: en-us\" "; $curlString .= " -H \"Accept-Encoding: gzip, deflate\" "; $curlString .= " -H \"Host: affiliate-program.amazon.com\" "; $curlString .= " -H \"Accept: */*\" "; $curlString .= " --compressed "; //$curlString .= " --trace-ascii "; if ($refererURL != '') { $curlString .= "-e \"".$refererURL."\" "; } if ($postData != '') { $curlString.= " -d \"$postData\" "; } $curlString .= $destinationURL; if ($curlDebug == true) { echo "<p>curlString: $curlString</p>"; } $temp = exec($curlString, $retval); $htmlData = ''; foreach ($retval as $arrayLine) { $htmlData .= $arrayLine."\r\n"; } if ($curlDebug == true) { echo "<textarea cols=80 rows=20>$htmlData</textarea>"; } return $htmlData; } // end function http://php.net/manual/en/ref.curl.php

« previous php.notes (#155226) next »