Last Updated on Mar 22, 2023
Sometimes we need to send requests to another url to get data, maybe another API. So how can we do that in PHP?
There are many ways but today we are going to talk about curl.
In order to work with curl in php you need to know 4 functions
initializes the curl request and returns an object that you would need for sending the request.
Then you should add options to your request with curl_setopt_array function. The first argument is the curl object that was returned from the first function and the second argument is an array of all the options
Some of the most common options are:
CURLOPT_URL: url that you are sending the request to
CURLOPT_TIMEOUT: maximum seconds that you are willing to wait. Default is 30 seconds
CURLOPT_CUSTOMREQUEST: what type of request are you sending. Post, get, delete, etc.
CURLOPT_HTTPHEADER: headers like accept and content type goes here.
After setting the options it’s time to send the request. You can do it by running curl_exec. This will get the returned object from the first function as an argument. This function returns the response you’ve received.
Then you should close the connection by running curl_close. Again it need the curl object as the argument.
Now let’s see all of it together.
// 1. initialize $curl = curl_init(); $headers = [ // 'Accept: application/json', // 'Content-Type: application/xml' ]; $requestType = 'POST'; // GET POST DELETE etc. $turl = 'https://example.com'; curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => $requestType, CURLOPT_POSTFIELDS => '', CURLOPT_HTTPHEADER => $headers, )); $response = curl_exec($curl); curl_close($curl); echo $response;
Now you know about curl in PHP.
I recommend you to open a PHP files and try send a request to any website. see if you can get a response.
If you have any suggestions, questions, or opinions, please contact me. I’m looking forward to hearing from you!
- send request
- curl init
- curl open and curl close
- curl exec