curl_init

curl_init($adresa)

Vytvoří spojení cURL, přes které se posílají požadavky HTTP na jiné servery (API, stahování stránek). Vrátí spojení, nebo false při chybě. Samotný požadavek pošle až curl_exec().

Parametry

  • $adresa – nepovinný, adresa požadavku. Jde ji nastavit i později přes CURLOPT_URL.

Příklady

$ch = curl_init("https://api.example.com/kurzy");
var_dump($ch !== false); // bool(true)
// adresa zadaná později
$ch2 = curl_init();
var_dump(curl_setopt($ch2, CURLOPT_URL, "https://api.example.com/kurzy")); // bool(true)
// celý požadavek
// $ch = curl_init("https://api.example.com/kurzy");
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// $odpoved = curl_exec($ch);
// je rozšíření cURL dostupné?
var_dump(function_exists("curl_init")); // bool(true)

Na co si dát pozor

  • V PHP 7 je spojení typu resource, od PHP 8 objekt CurlHandle. Kontrola is_resource($ch) v PHP 8 vrátí false, kontrolujte $ch !== false.
  • Rozšíření cURL nemusí být na každém hostingu. Bez něj zbývá file_get_contents() s kontextem.
  • Jedno spojení jde použít na víc požadavků za sebou (stačí změnit adresu), na stejný server je to rychlejší.
  • Adresu od uživatele nepoužívejte bez kontroly – šlo by přes ni posílat požadavky do vnitřní sítě serveru.

Příbuzné funkce:
curl_setopt()
curl_exec()
curl_close()
file_get_contents()