Home Backend Development PHP Tutorial Detailed tutorial on sending request with php curl

Detailed tutorial on sending request with php curl

Jul 31, 2019 pm 04:33 PM
curl php

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);
Copy after login

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);
Copy after login

test.php:

<?php
$title = $_REQUEST[&#39;title&#39;];
$content = $_REQUEST[&#39;content&#39;];
error_log($title."\n",3,&#39;error.log&#39;);
error_log($content."\n",3,&#39;error.log&#39;);
echo &#39;ok&#39;;
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles