Home > Article > Backend Development > Detailed tutorial on sending request with php curl
If you want to know more about php, you can click: php tutorial
cURLYou can use URL syntax to simulate a browser to transmit data. Because it is a simulated browser, it also supports multiple protocols, FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP protocols can be well supported, including: HTTPS authentication, HTTP POST method, HTTP PUT method, FTP upload, keyberos authentication, HTTP upload, proxy server, cookies, username/password authentication, download file breakpoints Resume upload, upload files at breakpoints, http proxy server pipeline, and even support IPv6, Scoket5 proxy server, upload files to FTP server through http proxy server, etc.
Using PHP’s cURL library can easily and effectively crawl web pages. You only need to run a script, and then analyze the web pages you crawled, and then you can get the data you want programmatically. Whether you want to retrieve partial data from a link, take an XML file and import it into a database, or even simply retrieve the content of a web page, cURL is a powerful PHP library.
1. Basic steps for establishing CURL request in PHP
##①: Initialization
curl_init()
②: Set properties
curl_setopt(). There is a long list of cURL parameters to set, they can Specify various details of the URL request.
③: Execute and get the result
curl_exec()
④: Release the handle
curl_close()
2. Example:
php curl sends get request :
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //执行命令 $data = curl_exec($curl); echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状态码 //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data);
php curl sends post request:
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 $post_data = array( "title" => "1290800466", "content" => "3424243243" ); //post提交的数据 curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data);
test.php:
<?php $title = $_REQUEST['title']; $content = $_REQUEST['content']; error_log($title."\n",3,'error.log'); error_log($content."\n",3,'error.log'); echo 'ok';
3. PHP cURL function:
The following contains a list of PHP cURL functions:Function | Description |
---|---|
curl_close() | Close a cURL session. |
curl_copy_handle() | Copy a cURL handle and all its options. |
curl_errno() | Returns the last error number. |
curl_error() | Returns a string that protects the most recent error in the current session. |
curl_escape() | Returns the escape string, URL encoding the given string. |
curl_exec() | Execute a cURL session. |
curl_file_create() | Create a CURLFile object. |
curl_getinfo() | Get information about a cURL connection resource handle. |
curl_init() | Initialize a cURL session. |
curl_multi_add_handle() | Add individual curl handles to the curl batch session. |
curl_multi_close() | Close a group of cURL handles. |
curl_multi_exec() | Runs a sub-connection of the current cURL handle. |
curl_multi_getcontent() | If CURLOPT_RETURNTRANSFER is set, returns the text stream of the obtained output. |
curl_multi_info_read() | Get the relevant transmission information of the currently parsed cURL. |
curl_multi_init() | Returns a new cURL batch handle. |
curl_multi_remove_handle() | Remove a handle resource in the curl batch handle resource. |
curl_multi_select() | Wait for all active connections in the cURL batch. |
curl_multi_setopt() | Set a batch cURL transfer option. |
curl_multi_strerror() | Returns a string text describing the error code. |
curl_pause() | Pause and resume the connection. |
curl_reset() | Resets all options of libcurl's session handle. |
curl_setopt_array() | Set options in batches for cURL transfer sessions. |
curl_setopt() | Set a cURL transfer option. |
curl_share_close() | Close the cURL shared handle. |
curl_share_init() | Initialize the cURL share handle. |
curl_share_setopt() | Sets the cURL transfer options for a shared handle. |
curl_strerror() | Returns a string description of the error code. |
curl_unescape() | Decode the URL-encoded string. |
curl_version() | Get cURL version information. |
Returns TRUE on success, or FALSE on failure.
Some status codes
1xx: Request received, continue processing
2xx: Operation received successfully, analysis, Accept
3xx: Completion of this request must require further processing
4xx: The request contains an incorrect syntax or cannot be completed
5xx: The server failed to execute a fully valid request
100——The client must continue to make requests
101——The client requires the server to convert the HTTP protocol version according to the request
200——The transaction is successful
201——Prompt to know The URL of the new file
202——Accepted and processed, but the processing was not completed
203——The return information is uncertain or incomplete
204——The request was received, But the return information is empty
205 - The server has completed the request, the user agent must reset the currently browsed files
206 - The server has completed some users' GET requests
300——The requested resource is available in multiple places
301——Delete the request data
302——The request data was found at another address
303— —It is recommended that customers visit other URLs or access methods
304——The client has executed GET, but the file has not changed
305——The requested resource must be obtained from the address specified by the server
306——Code used in the previous version of HTTP, no longer used in the current version
307——Declaration that the requested resource is temporarily deleted
400——Bad request, Such as syntax error
401——Request authorization failed
402——Retain valid ChargeTo header response
403——Request not allowed
404—— No file, query or URL found
405 - The method defined by the user in the Request-Line field is not allowed
406 - According to the Accept drag sent by the user, the requested resource is not accessible
407 - Similar to 401, the user must first obtain authorization on the proxy server
408 - The client did not complete the request within the user-specified time
409 - For the current Resource status, request cannot be completed
410 - This resource no longer exists on the server and there is no further reference address
411 - The server rejects the user-defined Content-Length attribute request
412 - One or more request header fields are incorrect in the current request
413 - The requested resource is larger than the size allowed by the server
414 - The requested resource URL is longer than the server Allowed length
415 - The requested resource does not support the request item format
416 - The request contains the Range request header field, and there is no range indication value within the current requested resource range. The request
Does not include the If-Range request header field
417 - The server does not meet the expectations specified in the request Expect header field. If it is a proxy server, it may be that the next-level server cannot satisfy the request
500 - The server generated an internal error
501 - The server does not support the requested function
502 - The server is temporarily unavailable, sometimes to prevent system overload
503——The server is overloaded or suspended for maintenance
504——The gateway is overloaded. The server uses another gate or service to respond to the user, and the waiting time is set to a longer value.
505——Server The HTTP version specified in the request header is not supported or refused to be supported
The above is the detailed content of Detailed tutorial on sending request with php curl. For more information, please follow other related articles on the PHP Chinese website!