Vyřešeno: stav zvlnění tisku

Curl je nástroj, který nám umožňuje odesílat nebo přijímat data po síti prostřednictvím různých protokolů. Jedním z jeho nejběžnějších použití je na serverech zasílání požadavků HTTP. Pochopení, jak pracovat s curl, je při vývoji webu zásadní, zvláště když potřebujeme komunikovat s API. Jednou z klíčových věcí při vytváření požadavků HTTP je schopnost správně zpracovat chybové stavy nebo stavy úspěchu. PHP nám nabízí funkci `curl_getinfo()` pro získání stavu HTTP požadavku.

[b]Řešení pro tisk stavového kódu HTTP v PHP pomocí curl[/b] je poměrně jednoduché.

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://example.com");
curl_exec($curl);

if (!curl_errno($curl)) {
  $info = curl_getinfo($curl);
  
  echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
  echo 'HTTP Status: ' . $info['http_code'];
} else {
  echo 'Curl error: ' . curl_error($curl);
}

curl_close($curl);

Abychom porozuměli tomuto bloku kódu, pojďme si jej rozebrat krok za krokem:

Nejprve inicializujeme novou relaci curl pomocí `curl_init()`. Tato funkce vrací při úspěchu kliku, při chybách FALSE. K nastavení některých voleb pro přenos cURL používáme curl_setopt. V našem případě nastavíme CURLOPT_URL na adresu URL, kterou chceme načíst.

Po nastavení všech našich možností použijeme k provedení relace `curl_exec()`. Pokud je relace úspěšně provedena, `curl_errno()` vrátí 0. V tomto konkrétním případě nás výstup zajímá pouze v případě, že nedošlo k chybě. Pokud nedojde k žádné chybě, použijeme `curl_getinfo()` na našem ovladači curl k načtení informací o relaci. Informace, které nás zajímají zejména, jsou informace o adrese URL a celková doba přenosu, a co je nejdůležitější, stavový kód HTTP. Pokud došlo k chybě při provádění curl, ošetříme ji v příkazu else.

Pochopení stavových kódů HTTP

HTTP odpovědi jsou dodávány se stavovými kódy, které udávají typ odpovědi. Jsou to trojciferná čísla, kde první číslice definuje třídu odpovědi. Existuje 5 tříd odpovědí:

  • 1xx (informační): Požadavek byl přijat, proces pokračuje
  • 2xx (Úspěšný): Požadavek byl úspěšně přijat, porozuměn a přijat
  • 3xx (přesměrování): Pro dokončení požadavku je třeba provést další akci
  • 4xx (Chyba klienta): Požadavek obsahuje špatnou syntaxi nebo jej nelze splnit
  • 5xx (Chyba serveru): Serveru se nepodařilo splnit zjevně platný požadavek

Pochopení těchto kódů pomáhá při správném zpracování odpovědí v našich aplikacích.

Některé běžné funkce PHP curl

Knihovna curl PHP má spoustu funkcí, díky kterým je práce s HTTP hračkou. Zde je několik:

  • curl_init: Inicializuje novou relaci cURL
  • curl_setopt: Nastavte možnost v relaci cURL
  • curl_exec: Provede danou relaci cURL
  • curl_getinfo: Získání informací o relaci cURL
  • curl_errno: Vrátí poslední číslo chyby
  • curl_error: Vrátí řetězec obsahující poslední chybu cURL
Související příspěvky:

Zanechat komentář