Proč v PHP pro načtení dat z URL nepoužívat file_get_contents

file_get_contents() nemá TCP optimalizaci, nemá Keep-Alive, nemá multiplexing. Funkce je pomalá pro stahování většího počtu dat ze vzdálených serverů. Pro každé použití vytváří nové připojení.

Použitelná je na jednoduché stažení malých dat. Na větší data je lepší používat nějakého HTTP klienta s TCP optimalizací např. Guzzle.

Framework Symfony má svůj HTTP Client. Ten podporuje velice šikovnou PHP knihovnu cURL.

Pro účely komunikace přes HTTP zprávy byl vytvořen standard PSR-7 HTTP Client.

Pro většinu menších projektů si vystačím s cURL.

Příklad použití cURL

<?php

// Import the cURL library
require_once 'vendor/autoload.php';

// Create a cURL object
$curl = curl_init();

// Set the URL of the web page to download
curl_setopt($curl, CURLOPT_URL, 'https://www.example.com');

// Follow redirects
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

// Don't output the response body to the browser
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// Execute the request
$response = curl_exec($curl);

// Close the cURL handle
curl_close($curl);

// Check for errors
if ($response === false) {
    echo 'An error occurred: ' . curl_error($curl);
} else {
    // Do something with the response body
    echo $response;
}