curlphpNoGetting Started TutorialfunctionexisthaveRelatedDetailed explanation
The cURL function in PHP has a set of related functions. It is a very good function. We often use it to simulate various login and collection tasks. Let me introduce you to the introduction of the CURL function.
Introduction to cURL
cURL is a tool that uses URL syntax to transfer data and files. It supports many protocols such as HTTP, FTP, TELNET, etc. PHP also supports the cURL library.
If we want to obtain the content of a certain web page, we may use the following methods:
These methods are quite simple, but lack flexibility and effective error handling. And they cannot complete some difficult actions, such as processing cookies, verification, form submission, file upload, etc.
cURL simple example
The following is a simple code, from which you can learn the general steps of using cURL, php cURL introductory tutorial.
The code is as follows
Copy code
header("Content-type: text/html; charset=utf-8");<🎜>
<🎜>// 1. Initialization<🎜>
$ch = curl_init();<🎜>
<🎜>// 2. Setting options<🎜>
curl_setopt($ch, CURLOPT_URL, "http://www.bKjia.c0m");<🎜>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<🎜>
curl_setopt($ch, CURLOPT_HEADER, 0);<🎜>
<🎜>// 3. Execute and get the returned content<🎜>
$output = curl_exec($ch);<🎜>
<🎜>// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs <🎜>
if ($output === FALSE) {<🎜>
echo "cURL Error: " . curl_error($ch);<🎜>
}<🎜>
<🎜> // 5. Release curl resources <🎜>
curl_close($ch);<🎜>
<🎜>//Output the obtained source code<🎜>
echo $output;<🎜>
?>
Regarding the second step, curl_setopt() is the most important. There is a long list of cURL parameters to set, which can specify various details of the URL request.
Get information
This is another optional setting that can obtain information about this request after cURL is executed:
The code is as follows
Copy code
header("Content-type: text/html; charset=utf-8");<🎜>
<🎜>// 1. Initialization<🎜>
$ch = curl_init();<🎜>
<🎜>// 2. Setting options<🎜>
curl_setopt($ch, CURLOPT_URL, "http://www.bKjia.c0m");<🎜>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<🎜>
curl_setopt($ch, CURLOPT_HEADER, 0);<🎜>
<🎜>/// 3. Execute and obtain the HTML document content<🎜>
$output = curl_exec($ch);<🎜>
<🎜>// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs <🎜>
if ($output === FALSE) {<🎜>
echo "cURL Error: " . curl_error($ch);<🎜>
}<🎜>
<🎜>// Get cURL information and output <🎜>
$info = curl_getinfo($ch);<🎜>
echo 'Get '. $info['url'] . ' Time consuming '. $info['total_time'] . 'Seconds';<🎜>
<🎜>// 5. Release curl handle<🎜>
curl_close($ch);<🎜>
?>
The returned array includes the following information:
"url" // Resource network address
"content_type" // Content type and encoding
"http_code" // HTTP status code
"header_size" // header size
"request_size" // Request size
"filetime" // file creation time
"ssl_verify_result" // SSL verification result
"redirect_count" // Jump technology
"total_time" //Total time spent
"namelookup_time" // DNS query time
"connect_time" // Time spent waiting for connection
"pretransfer_time" // Preparation time before transfer
"size_upload" // Size of uploaded data
"size_download" // Size of downloaded data
"speed_download" // Download speed
"speed_upload" // Upload speed
"download_content_length" // The length of the download content
"upload_content_length" // The length of the uploaded content
"starttransfer_time" // Time to start transfer
"redirect_time" // redirection time
//Data to be posted
$post_data = array (
"hyh" => "man",
"xlp" => "woman",
"love" => "yes"
);
// 1. Initialization
$ch = curl_init();
// 2. Setting options
curl_setopt($ch, CURLOPT_URL, "http://localhost/to.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); // Set to post mode here
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // Add data to prepare for post
/// 3. Execute and get the returned content
$output = curl_exec($ch);
// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
// 5. Release curl handle
curl_close($ch);
//Output content
echo $output;
?>
New to.php
The code is as follows
Copy code
";
print_r($_POST);
echo "
I'm come from http://www.bKjia.c0m"
?>
File upload
Uploading files is very similar to the previous POST, because all file upload forms are submitted through the POST method.
// 2. Setting options
curl_setopt($ch, CURLOPT_URL, "http://localhost/to.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); // Set to post mode here
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // Add data to prepare for post
/// 3. Execute and get the returned content
$output = curl_exec($ch);
// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
// 5. Release curl resources
curl_close($ch);
//Output content
echo $output;
?>
New to.php:
If you need to upload a file, just pass the file path like a post variable, but remember to add the @ symbol in front.
Some more useful cURL examples
HTTP Authentication
If a URL request requires HTTP-based authentication, you can use the following code:
The code is as follows
Copy code
header("Content-type: text/html; charset=utf-8");<🎜>
<🎜>// 1. Initialization<🎜>
$ch = curl_init();<🎜>
<🎜>// 2. Setting options<🎜>
curl_setopt($ch, CURLOPT_URL, "http://www.bKjia.c0m");<🎜>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<🎜>
curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword"); // Send username and password<🎜>
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // You can allow redirection<🎜>
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1); // Allow cURL to send username and password after redirection<🎜>
<🎜>/// 3. Execute and get the returned content<🎜>
$output = curl_exec($ch);<🎜>
<🎜>// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs <🎜>
if ($output === FALSE) {<🎜>
echo "cURL Error: " . curl_error($ch);<🎜>
}<🎜>
<🎜> // 5. Release curl handle <🎜>
curl_close($ch);<🎜>
?>
FTP upload
PHP comes with its own FTP class library, but you can also use cURL. You can also refer to this article: PHP uses cURL to implement ftp upload
// 2. Setting options
curl_setopt($ch, CURLOPT_URL, "ftp://username:password@3aj.cn:21/path/to/new/file");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Upload related options
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));
// Whether to enable ASCII mode (useful when uploading text files)
curl_setopt($ch, CURLOPT_FTPASCII, 1);
/// 3. Execute and get the returned content
$output = curl_exec($ch);
// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
// 5. Release curl handle
curl_close($ch);
?>
You can use a proxy to make cURL requests:
The code is as follows
Copy code
header("Content-type: text/html; charset=utf-8");<🎜>
<🎜>// 1. Initialization<🎜>
$ch = curl_init();<🎜>
<🎜>// 2. Setting options<🎜>
curl_setopt($ch, CURLOPT_URL, "http://www.bKjia.c0m");<🎜>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<🎜>
curl_setopt($ch, CURLOPT_PROXY, '11.11.11.11:8080'); // Specify proxy address<🎜>
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:pass'); // Provide username and password if necessary <🎜>
<🎜>/// 3. Execute and get the returned content<🎜>
$output = curl_exec($ch);<🎜>
<🎜>// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs <🎜>
if ($output === FALSE) {<🎜>
echo "cURL Error: " . curl_error($ch);<🎜>
}<🎜>
<🎜>// 5. Release curl handle<🎜>
curl_close($ch);<🎜>
?>
Callback function
You can have cURL call a specified callback function during a URL request. For example, start utilizing data as soon as the content or response is downloading, rather than waiting until it is completely downloaded.
The code is as follows
Copy code
header("Content-type: text/html; charset=utf-8");<🎜>
<🎜>// 1. Initialization<🎜>
$ch = curl_init();<🎜>
<🎜>// 2. Setting options<🎜>
curl_setopt($ch, CURLOPT_URL, "http://www.bKjia.c0m");<🎜>
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "progress_function");<🎜>
<🎜>/// 3. Execute and get the returned content<🎜>
curl_exec($ch);<🎜>
<🎜>// 4. Wrong judgment, please note that this is a Boolean value, not an empty output, so there are 3 equal signs <🎜>
if ($output === FALSE) {<🎜>
echo "cURL Error: " . curl_error($ch);<🎜>
}<🎜>
<🎜>// 5. Release curl handle<🎜>
curl_close($ch);<🎜>
<🎜>//Callback function<🎜>
function progress_function($ch, $str) {<🎜>
echo $str;<🎜>
Return strlen($str);<🎜>
}<🎜>
?>
This callback function must return the length of the string, otherwise this function will not work properly. During the process of receiving the URL response, this function will be called as long as a data packet is received.
After talking for a long time, let’s use cURL, an advanced and practical function, to implement ftp upload
Web server upload limit:
The default upload limit of PHP is 2M. If you want to upload files exceeding 2M, you must modify your PHP configuration or use the following code to create a .htaceess file.
The maximum file upload limit is set here to 16M, and the value of post_max_size is 20M, because we may also need the values of other form items in the POST form while uploading files.
The created .htaccess should be placed in the same directory as your upload script.
Use cURL for file upload
cURL is a tool that uses URL syntax to transfer files and data. It supports many protocols, such as HTTP, FTP, TELNET, etc. It can complete many difficult tasks - such as handling cookies, verification, form submission, file upload, ftp upload, etc.
代码如下
复制代码
Here, we are going to upload a file to the ftp space by using a web form. The ftp space here is password protected.
The code is as follows
Copy code
This form page is relatively simple and only has a file upload function.
Then we need the following php code to receive the uploaded file, use cURL to open a file stream and transfer it to the remote ftp server.
The code is as follows
代码如下
复制代码
if (isset($_POST['Submit'])) {
if (!empty($_FILES['upload']['name'])) {
$ch = curl_init();
$localfile = $_FILES['upload']['tmp_name'];
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://username:password@3aj.cn/'.$_FILES['upload']['name']);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec($ch);
$error_no = curl_errno($ch);
curl_close($ch);
if ($error_no == 0) {
$error = 'File uploaded succesfully.';
} else {
$error = 'File upload error.';
echo "i come from ";
}
} else {
$error = 'Please select a file.';
}
}
curl_exec($ch);
$error_no = curl_errno($ch);
curl_close($ch);
if ($error_no == 0) {
$error = 'File uploaded successfully.';
} else {
$error = 'File upload error.';
echo "i come from ";
}
} else {
$error = 'Please select a file.';
}
}
When the user selects and uploads a file, the file is first saved on the web server. We use fopen to open the temporary file and initialize a cURL session. In the sent URL, fill in the ftp account and password, and then Then set other necessary parameters of cURL. If the number of errors returned is 0, then the file was uploaded successfully.
Summary
Today we learned the powerful functions and flexible scalability of the cURL library. The original text was compiled from: 3a Tutorial Network
http://www.bkjia.com/PHPjc/628616.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/628616.htmlTechArticleThe cURL function in php has a set of related functions. It is a very good function. We often use it to Imitating various login and collection tasks, let me introduce you to the introduction of CURL function...
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
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
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
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
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,
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
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
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 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.