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()