为了使用CURL函数你需要安装CURL包。PHP 需要你使用CURL 7.0.2-beta或更高版。如果CURL的版本低于7.0.2-beta,PHP将不工作。
要使用PHP的CURL支持,你必须用带有--with-curl[=DIR]参数重新编译PHP(DIR是包含库和头文件的目录)。
这些函数是在PHP 4.0.2中新增得。
一旦你编译了带有CURL支持的PHP,你可以使用curl函数。基本思路是:你使用curl_init()函数初始化CURL会话,而后你可以设置你的所有选项,通过curl_exec()函数执行,最后你可以作用curl_close()函数来结束你的会话。以下是一个例子:是把PHP的主页取回放到一个文件中
Curl_1
1<?php
2$ch = curl_init ("http://www.php.net/");
3$fp = fopen ("php_homepage.txt", "w");
4
5curl_setopt ($ch, CURLOPT_FILE, $fp);
6curl_setopt ($ch, CURLOPT_HEADER, 0);
7
8curl_exec ($ch);
9curl_close ($ch);
10fclose ($fp);
11?>
1<?php
2$ch = curl_init ("http://www.php.net/");
3$fp = fopen ("php_homepage.txt", "w");
4
5curl_setopt ($ch, CURLOPT_FILE, $fp);
6curl_setopt ($ch, CURLOPT_HEADER, 0);
7
8curl_exec ($ch);
9curl_close ($ch);
10fclose ($fp);
11?>
使用如题所述方法进行文件post操作:
Curl
1$URL="www.mysite.com/test.php";
2$ch = curl_init();
3curl_setopt($ch, CURLOPT_URL,"https://$URL");
4curl_setopt($ch, CURLOPT_POST, 1);
5curl_setopt($ch, CURLOPT_POSTFIELDS, "Data1=blah&Data2=blah");
6curl_exec ($ch);
7curl_close ($ch);
1$URL="www.mysite.com/test.php";
2$ch = curl_init();
3curl_setopt($ch, CURLOPT_URL,"https://$URL");
4curl_setopt($ch, CURLOPT_POST, 1);
5curl_setopt($ch, CURLOPT_POSTFIELDS, "Data1=blah&Data2=blah");
6curl_exec ($ch);
7curl_close ($ch);
用普通文件方法post
File_Post_Code
1<?php
2function posttohost($url, $data) {
3$url = parse_url($url);
4if (!$url) return "couldn't parse url";
5if (!isset($url['port'])) { $url['port'] = ""; }
6if (!isset($url['query'])) { $url['query'] = ""; }
7
8$encoded = "";
9
10while (list($k,$v) = each($data)) {
11$encoded .= ($encoded ? "&" : "");
12$encoded .= rawurlencode($k)."=".rawurlencode($v);
13}
14
15$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
16if (!$fp) return "Failed to open socket to $url[host]";
17
18fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
19fputs($fp, "Host: $url[host]\n");
20fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
21fputs($fp, "Content-length: " . strlen($encoded) . "\n");
22fputs($fp, "Connection: close\n\n");
23
24fputs($fp, "$encoded\n");
25
26$line = fgets($fp,1024);
27if (!eregi("^HTTP/1\.. 200", $line)) return;
28
29$results = ""; $inheader = 1;
30while(!feof($fp)) {
31$line = fgets($fp,1024);
32if ($inheader && ($line == "\n" || $line == "\r\n")) {
33$inheader = 0;
34}
35elseif (!$inheader) {
36$results .= $line;
37}
38}
39fclose($fp);
40
41return $results;
42}
43?>
1<?php
2function posttohost($url, $data) {
3$url = parse_url($url);
4if (!$url) return "couldn't parse url";
5if (!isset($url['port'])) { $url['port'] = ""; }
6if (!isset($url['query'])) { $url['query'] = ""; }
7
8$encoded = "";
9
10while (list($k,$v) = each($data)) {
11$encoded .= ($encoded ? "&" : "");
12$encoded .= rawurlencode($k)."=".rawurlencode($v);
13}
14
15$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
16if (!$fp) return "Failed to open socket to $url[host]";
17
18fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
19fputs($fp, "Host: $url[host]\n");
20fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
21fputs($fp, "Content-length: " . strlen($encoded) . "\n");
22fputs($fp, "Connection: close\n\n");
23
24fputs($fp, "$encoded\n");
25
26$line = fgets($fp,1024);
27if (!eregi("^HTTP/1\.. 200", $line)) return;
28
29$results = ""; $inheader = 1;
30while(!feof($fp)) {
31$line = fgets($fp,1024);
32if ($inheader && ($line == "\n" || $line == "\r\n")) {
33$inheader = 0;
34}
35elseif (!$inheader) {
36$results .= $line;
37}
38}
39fclose($fp);
40
41return $results;
42}
43?>