
- PHP - Home
- PHP - Roadmap
- PHP - Introduction
- PHP - Installation
- PHP - History
- PHP - Features
- PHP - Syntax
- PHP - Hello World
- PHP - Comments
- PHP - Variables
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ and $$ Variables
- PHP - Constants
- PHP - Magic Constants
- PHP - Data Types
- PHP - Type Casting
- PHP - Type Juggling
- PHP - Strings
- PHP - Boolean
- PHP - Integers
- PHP - Files & I/O
- PHP - Maths Functions
- PHP - Heredoc & Nowdoc
- PHP - Compound Types
- PHP - File Include
- PHP - Date & Time
- PHP - Scalar Type Declarations
- PHP - Return Type Declarations
- PHP - Operators
- PHP - Arithmetic Operators
- PHP - Comparison Operators
- PHP - Logical Operators
- PHP - Assignment Operators
- PHP - String Operators
- PHP - Array Operators
- PHP - Conditional Operators
- PHP - Spread Operator
- PHP - Null Coalescing Operator
- PHP - Spaceship Operator
- PHP Control Statements
- PHP - Decision Making
- PHP - If…Else Statement
- PHP - Switch Statement
- PHP - Loop Types
- PHP - For Loop
- PHP - Foreach Loop
- PHP - While Loop
- PHP - Do…While Loop
- PHP - Break Statement
- PHP - Continue Statement
- PHP Arrays
- PHP - Arrays
- PHP - Indexed Array
- PHP - Associative Array
- PHP - Multidimensional Array
- PHP - Array Functions
- PHP - Constant Arrays
- PHP Functions
- PHP - Functions
- PHP - Function Parameters
- PHP - Call by value
- PHP - Call by Reference
- PHP - Default Arguments
- PHP - Named Arguments
- PHP - Variable Arguments
- PHP - Returning Values
- PHP - Passing Functions
- PHP - Recursive Functions
- PHP - Type Hints
- PHP - Variable Scope
- PHP - Strict Typing
- PHP - Anonymous Functions
- PHP - Arrow Functions
- PHP - Variable Functions
- PHP - Local Variables
- PHP - Global Variables
- PHP Superglobals
- PHP - Superglobals
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP File Handling
- PHP - File Handling
- PHP - Open File
- PHP - Read File
- PHP - Write File
- PHP - File Existence
- PHP - Download File
- PHP - Copy File
- PHP - Append File
- PHP - Delete File
- PHP - Handle CSV File
- PHP - File Permissions
- PHP - Create Directory
- PHP - Listing Files
- Object Oriented PHP
- PHP - Object Oriented Programming
- PHP - Classes and Objects
- PHP - Constructor and Destructor
- PHP - Access Modifiers
- PHP - Inheritance
- PHP - Class Constants
- PHP - Abstract Classes
- PHP - Interfaces
- PHP - Traits
- PHP - Static Methods
- PHP - Static Properties
- PHP - Namespaces
- PHP - Object Iteration
- PHP - Encapsulation
- PHP - Final Keyword
- PHP - Overloading
- PHP - Cloning Objects
- PHP - Anonymous Classes
- PHP Web Development
- PHP - Web Concepts
- PHP - Form Handling
- PHP - Form Validation
- PHP - Form Email/URL
- PHP - Complete Form
- PHP - File Inclusion
- PHP - GET & POST
- PHP - File Uploading
- PHP - Cookies
- PHP - Sessions
- PHP - Session Options
- PHP - Sending Emails
- PHP - Sanitize Input
- PHP - Post-Redirect-Get (PRG)
- PHP - Flash Messages
- PHP AJAX
- PHP - AJAX Introduction
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - AJAX RSS Feed Example
- PHP XML
- PHP - XML Introduction
- PHP - Simple XML Parser
- PHP - SAX Parser Example
- PHP - DOM Parser Example
- PHP Login Example
- PHP - Login Example
- PHP - Facebook Login
- PHP - Paypal Integration
- PHP - MySQL Login
- PHP Advanced
- PHP - MySQL
- PHP.INI File Configuration
- PHP - Array Destructuring
- PHP - Coding Standard
- PHP - Regular Expression
- PHP - Error Handling
- PHP - Try…Catch
- PHP - Bugs Debugging
- PHP - For C Developers
- PHP - For PERL Developers
- PHP - Frameworks
- PHP - Core PHP vs Frame Works
- PHP - Design Patterns
- PHP - Filters
- PHP - JSON
- PHP - Exceptions
- PHP - Special Types
- PHP - Hashing
- PHP - Encryption
- PHP - is_null() Function
- PHP - System Calls
- PHP - HTTP Authentication
- PHP - Swapping Variables
- PHP - Closure::call()
- PHP - Filtered unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - Expectations
- PHP - Use Statement
- PHP - Integer Division
- PHP - Deprecated Features
- PHP - Removed Extensions & SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI Process
- PHP - PDO Extension
- PHP - Built-In Functions
PHP cURL curl_error() Function
The PHP Client URL curl_error() function is used to get a string containing the last error for the cURL session.
Syntax
Below is the syntax of the PHP cURL curl_error() function −
string curl_error ( resource $ch )
Parameters
This function accepts $ch parameter which is the cURL handle resource returned by curl_init().
Return Value
The curl_error() function returns the error message string in the event that there was an error during the most recent cURL operation, or an empty string ("").
PHP Version
First introduced in core PHP 4.0.3, the curl_error() function continues to function easily in PHP 5, PHP 7, and PHP 8.
Example 1
First we will show you the basic example of the PHP cURL curl_error() function which is to find the error if there is no resource provided.
<?php // Create a new cURL resource $ch = curl_init(); // Set options and perform cURL session $result = curl_exec($ch); if($result === false) { echo "cURL Error: " . curl_error($ch); } curl_close($ch);
Output
Here is the outcome of the following code −
cURL Error: No URL set
Example 2
In this example, we will use the curl_error() method to look for errors after initiating a cURL session to get data from an API. The error message will be displayed when curl_exec($ch) fails.
<?php // Initialize cURL session $ch = curl_init("https://404-web-site.com/api"); // Set cURL options curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Execute cURL session $result = curl_exec($ch); // Check for errors if ($result === false) { echo "cURL Error: " . curl_error($ch); } else { echo "Response: " . $result; } // Close cURL session curl_close($ch); ?>
Output
This will produce the following output −
cURL Error: Could not resolve host: 404-web-site.com
Example 3
In the below PHP code we will try to copy the URL using the curl_error() function and modify the original URL and display the data from all the URLs.
<?php // URL and POST data $url = "https://jsonplaceholder.typicode.com/posts"; $data = [ 'key1' => 'value1', 'key2' => 'value2' ]; // Initialize cURL session $ch = curl_init($url); // Set cURL options for POST request curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // Execute cURL session $result = curl_exec($ch); // Check for errors if ($result === false) { echo "cURL Error: " . curl_error($ch); } else { echo "Response: " . $result; } // Close cURL session curl_close($ch); ?>
Output
This will generate the below output −
Response: { "key1": "value1", "key2": "value2", "id": 101 }
Example 4
This example shows how to start multiple cURL sessions to be able get data from multiple URLs at the same time. After the execution of the sessions, curl_error($ch) is used in a loop to check each cURL handle for problems.
// Create an array of URLs $urls = [ "https://jsonplaceholder.typicode.com/posts/1", "https://jsonplaceholder.typicode.com/posts/2" ]; // Initialize an array to store cURL $handles = []; // Initialize cURL sessions foreach ($urls as $url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $handles[] = $ch; } // Execute all cURL sessions $multihandle = curl_multi_init(); foreach ($handles as $ch) { curl_multi_add_handle($multihandle, $ch); } $running = null; do { curl_multi_exec($multihandle, $running); } while ($running); // Check for errors in each cURL handle foreach ($handles as $ch) { if (curl_errno($ch)) { echo "cURL Error for handle: " . curl_error($ch) . "\n"; } else { // Process successful response $response = curl_multi_getcontent($ch); echo "Response: " . $response . "\n"; } curl_multi_remove_handle($multihandle, $ch); curl_close($ch); } // Close multi-handle curl_multi_close($multihandle);
Output
This will create the following result −
Response: { "userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" } Response: { "userId": 1, "id": 2, "title": "qui est esse", "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla" }
Summary
The curl_error() method is a built-in function to check for any errors after executing the giving request. It is very helpful for managing errors and debugging when creating an API connection or when we are getting remote data.