司开星的博客

Curl命令及PHP中Curl的应用

Curl命令

参考资料:curl网站开发指南(http://www.ruanyifeng.com/blog/2011/09/curl.html)。

  • 直接获取网页源码:curl www.sina.com
  • 保存文件名:curl -o [文件名] www.sina.com
  • 自动跳转:curl -L www.sina.com
  • 显示源码以及header:curl -i www.sina.com
  • 只显示header:curl -I www.sina.com
  • 显示整个通信过程:curl -v www.sina.com
  • 获取更详细的通信过程:curl –trace output.txt www.sina.com
  • 发送get表单:curl example.com/form.cgi?data=xxx
  • 发送post表单:curl -X POST –data “data=xxx” example.com/form.cgi
  • 发送经过curl编码的post表单:curl -X POST–data-urlencode “date=April 1” example.com/form.cgi
  • 其他动作:curl -X DELETE www.example.com
  • 上传文件:curl –form upload=@localfilename –form press=OK [URL]
  • 提供refer:curl –referer http://www.example.com http://www.example.com
  • 模拟UA:curl –user-agent “[User Agent]” [URL]
  • 提供Cookie:curl –cookie “name=xxx” www.example.com
  • 保存Cookie:curl -c cookies http://example.com
  • 使用Cookie文件:curl -b cookies http://example.com
  • 增加其他header:curl –header “Content-Type:application/json” http://example.com
  • 提供验证:curl –user name:password example.com

PHP中Curl

参考资料:http://php.net/manual/zh/curl.examples-basic.php

使用cURL函数的基本思想是先使用curl_init()初始化一个cURL会话,接着你可以通过curl_setopt()设置你需要的全部选项,然后使用curl_exec()来执行会话,当执行完会话后使用curl_close()关闭会话。这是一个使用cURL函数获取example.com的主页保存到文件的例子:

1
2
3
4
5
6
7
8
9
10
11
12
<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>