Curl Basics and Using Curl from PHP
Curl on the command line
Based on the guide at http://www.ruanyifeng.com/blog/2011/09/curl.html.
- Fetch page source:
curl www.sina.com
- Save to a file:
curl -o <filename> www.sina.com
- Follow redirects:
curl -L www.sina.com
- Show response with headers:
curl -i www.sina.com
- Show headers only:
curl -I www.sina.com
- Verbose output:
curl -v www.sina.com
- Even more detail:
curl --trace output.txt www.sina.com
- Send GET data:
curl example.com/form.cgi?data=xxx
- Send POST data:
curl -X POST --data "data=xxx" example.com/form.cgi
- URL-encode the POST body:
curl -X POST --data-urlencode "date=April 1" example.com/form.cgi
- Other verbs:
curl -X DELETE www.example.com
- Upload a file:
curl --form upload=@localfilename --form press=OK <URL>
- Set Referer:
curl --referer http://www.example.com http://www.example.com
- Set User-Agent:
curl --user-agent "<User Agent>" <URL>
- Send cookies:
curl --cookie "name=xxx" www.example.com
- Save cookies:
curl -c cookies http://example.com
- Load cookies from file:
curl -b cookies http://example.com
- Add custom headers:
curl --header "Content-Type:application/json" http://example.com
- Provide basic auth:
curl --user name:password example.com
Curl from PHP
Reference: http://php.net/manual/zh/curl.examples-basic.php
The typical flow is: initialize a session with curl_init()
, set options via curl_setopt()
, execute with curl_exec()
, and finally close the handle with curl_close()
. Example: download the home page of example.com and save it to a file.
1 | <?php |