search
HomeBackend DevelopmentPHP TutorialDetailed tutorial on sending request with php curl

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[&#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;;

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
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
PHP and Python: Different Paradigms ExplainedPHP and Python: Different Paradigms ExplainedApr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP and Python: A Deep Dive into Their HistoryPHP and Python: A Deep Dive into Their HistoryApr 18, 2025 am 12:25 AM

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Choosing Between PHP and Python: A GuideChoosing Between PHP and Python: A GuideApr 18, 2025 am 12:24 AM

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP and Frameworks: Modernizing the LanguagePHP and Frameworks: Modernizing the LanguageApr 18, 2025 am 12:14 AM

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHP's Impact: Web Development and BeyondPHP's Impact: Web Development and BeyondApr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

How does PHP type hinting work, including scalar types, return types, union types, and nullable types?How does PHP type hinting work, including scalar types, return types, union types, and nullable types?Apr 17, 2025 am 12:25 AM

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values ​​and handle functions that may return null values.

How does PHP handle object cloning (clone keyword) and the __clone magic method?How does PHP handle object cloning (clone keyword) and the __clone magic method?Apr 17, 2025 am 12:24 AM

In PHP, use the clone keyword to create a copy of the object and customize the cloning behavior through the \_\_clone magic method. 1. Use the clone keyword to make a shallow copy, cloning the object's properties but not the object's properties. 2. The \_\_clone method can deeply copy nested objects to avoid shallow copying problems. 3. Pay attention to avoid circular references and performance problems in cloning, and optimize cloning operations to improve efficiency.

PHP vs. Python: Use Cases and ApplicationsPHP vs. Python: Use Cases and ApplicationsApr 17, 2025 am 12:23 AM

PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.

See all articles

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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor