background image

上面是抓取网页的代码,下面则是向某个网页 POST 数据。假设我们有一个处
理表单的网址

http://www.php186.com/

§,其可以接受两个表单域,一个是

电话号码,一个是短信内容。
<?php 
$phoneNumber = '13912345678'; 
$message = 'This message was generated by curl and php'; 
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . 
'&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 
'http://www.example.com/sendSMS.php'); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); 
$data = curl_exec();curl_close($ch); 
?>
从上面的程序我们可以看到,使用 CURLOPT_POST 设置 HTTP 协议的 POST
方法,而不是 GET 方法,然后以 CURLOPT_POSTFIELDS 设置 POST 的数据。
关于代理服务器
下面是一个如何使用代理服务器的示例。请注意其中高亮的代码,代码很简单,
我就不用多说了。
<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); 
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); 
$data = curl_exec();curl_close($ch); 
?>

关于 SSL 和 Cookie

关于 SSL 也就是 HTTPS 协议,你只需要把 CURLOPT_URL 连接中的 http://
变成 https://就可以了。当然,还有一个参数叫 CURLOPT_SSL_VERIFYHOST
可以设置为验证站点。
关于 Cookie,你需要了解下面三个参数:
CURLOPT_COOKIE,在当面的会话中设置一个 cookie
CURLOPT_COOKIEJAR,当会话结束的时候保存一个 Cookie
CURLOPT_COOKIEFILE,Cookie 的文件。

HTTP 服务器认证

最后,我们来看一看 HTTP 服务器认证的情况。
<?php 
$ch = curl_init();