PHP/CURL is an extremely powerful interface with a dizzying array of options. This appendix highlights only those options and features of PHP/CURL that are specifically interesting to webbot developers. The full specification of PHP/CURL is available at the PHP website.[101]
In some regards, a PHP/CURL session is similar to a PHP file I/O session. Both create a session (or file handle) to reference an external file. And in both cases, when the file transfer is complete, the session is closed. However, PHP/CURL differs from standard file I/O because it requires a series of options that define the nature of the file transfer set before the exchange takes place. These options are set individually, and the sequence in which they are defined is of no importance. As a quick example, Example A-1 shows the minimal options required to create a PHP/CURL session that will put a downloaded file into a variable.
Example A-1. A minimal PHP/CURL session
<? # Open a PHP/CURL session $s = curl_init(); # Configure the PHP/CURL command curl_setopt($s, CURLOPT_URL, "http://www.schrenk.com"); // Define target site curl_setopt($s, CURLOPT_RETURNTRANSFER, TRUE); // Return in string # Execute the PHP/CURL command (send contents of target web page to string) $downloaded_page = curl_exec($s); # Close PHP/CURL session curl_close($s); ?>
The rest of this section details how to initiate sessions, set options, execute commands, and close sessions in PHP/CURL. We’ll also look at how PHP/CURL provides transfer status and error messages.