Current Location: Home> Latest Articles> How to Quickly Make a Simple GET Request with curl_init in PHP – A Beginner’s Guide

How to Quickly Make a Simple GET Request with curl_init in PHP – A Beginner’s Guide

gitbox 2025-09-19

In PHP, the cURL extension is a powerful tool for making HTTP requests. Whether you need to interact with external APIs or scrape web content, cURL offers a flexible and efficient solution. For beginners, understanding how to use curl_init() to make a simple GET request is a crucial starting point.

What is curl_init()?

curl_init() is a PHP function used to initialize a cURL session. It returns a cURL handle that you can use to configure the request options and ultimately send an HTTP request.

How to Make a Simple GET Request Using curl_init()

Here are the basic steps to make a simple GET request using curl_init():

  1. Initialize the cURL Session
    First, use curl_init() to start a cURL session.

  2. Set cURL Options
    Use curl_setopt() to configure request parameters such as the request URL and method.

  3. Execute the cURL Request
    Use curl_exec() to send the request and retrieve the response.

  4. Close the cURL Session
    Finally, use curl_close() to close the session and free resources.

Example Code

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Initialize cURL session</span></span><span>
</span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>();
<p></span>// Set request URL<br>
curl_setopt($ch, CURLOPT_URL, "<a rel="noopener" target="_new" class="decorated-link" href="https://api.example.com/data"</span></span><span">https://api.example.com/data"</span></span><span<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" data-rtl-flip="" class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]"><path d="M14.3349 13.3301V6.60645L5.47065 15.4707C5.21095 15.7304 4.78895 15.7304 4.52925 15.4707C4.26955 15.211 4.26955 14.789 4.52925 14.5293L13.3935 5.66504H6.66011C6.29284 5.66504 5.99507 5.36727 5.99507 5C5.99507 4.63273 6.29284 4.33496 6.66011 4.33496H14.9999L15.1337 4.34863C15.4369 4.41057 15.665 4.67857 15.665 5V13.3301C15.6649 13.6973 15.3672 13.9951 14.9999 13.9951C14.6327 13.9951 14.335 13.6973 14.3349 13.3301Z"></path></svg></a>>);</p>
<p>// Set return transfer as string<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p>
<p>// Execute request and get response<br>
$response = curl_exec($ch);</p>
<p>// Check if request succeeded<br>
if ($response === false) {<br>
echo "cURL Error: " . curl_error($ch);<br>
} else {<br>
echo "Request succeeded, returned data: " . $response;<br>
}</p>
<p>// Close cURL session<br>
curl_close($ch);<br>
?><br>

Code Explanation

  1. curl_init(): Initializes a cURL session.

  2. curl_setopt($ch, CURLOPT_URL, "https://api.example.com/data"): Sets the request URL, indicating that we want to make a GET request to https://api.example.com/data.

  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true): When set to true, the response is returned as a string rather than being output directly.

  4. curl_exec($ch): Executes the cURL session, sending the request and retrieving the response.

  5. curl_error($ch): If the request fails, curl_error() helps you get the error message for debugging purposes.

  6. curl_close($ch): Closes the cURL session and frees resources.

Response

When the request succeeds, the $response variable will contain the content returned by the target server. For a simple GET request, the server typically returns a string, JSON data, or HTML content. You can further process the response data as needed.

Error Handling

cURL provides error handling mechanisms. When a request fails, curl_exec() returns false, and you can use curl_error() to get detailed error information. Additionally, curl_getinfo() can provide extra information about the request, such as HTTP status codes.

<span><span><span class="hljs-comment">// Check if request succeeded</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$response</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Request failed, error message: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">curl_error</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"HTTP Status Code: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">curl_getinfo</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLINFO_HTTP_CODE);
}
</span></span>

Conclusion

Using curl_init() to make a GET request is straightforward and simple. Following the steps above, you can easily make network requests in PHP. Whether fetching data from external APIs or scraping web content, cURL provides robust capabilities. Once you understand the basic usage of cURL, you can add more options according to your needs, such as custom headers, timeout settings, and proxies.

Hopefully, this article helps you better understand and use cURL to make PHP network requests quickly and efficiently!