Nice post. :) There’s also using the streams HTTP context – see Example #1 here: http://php.net/manual/en/context.http.php – as well as opening a TCP stream and manually writing the HTTP request to it. PEAR::HTTP_Client and Zend_Http_Client from Zend Framework are other client library options as well.