Sobes.tech
Junior

Aké sieťové funkcie existujú v PHP?

sobes.tech AI

Odpoveď od AI

V PHP existuje veľa sieťových funkcií, ktoré pokrývajú rôzne aspekty práce so sieťami. Najčastejšie používané sú:

  • Sekcia "Sokety" (Sockets):
    • socket_create(): Vytvorí soket.
    • socket_connect(): Naväzuje spojenie s vzdialeným hostiteľom.
    • socket_bind(): Pripája soket k adrese a portu.
    • socket_listen(): Počuje na prichádzajúce spojenia.
    • socket_accept(): Prijíma prichádzajúce spojenie.
    • socket_read(): Číta dáta zo soketu.
    • socket_write(): Zapíše dáta do soketu.
    • socket_close(): Zatvorí soket.
    • socket_last_error(): Vráti posledný kód chyby soketu.
    • socket_strerror(): Vráti textový popis chyby.
<?php
// Príklad vytvorenia a pripojenia k soketu
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() zlyhalo: dôvod: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Soket bol vytvorený.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() zlyhalo: dôvod: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Pripojenie bolo nadviazané.\n";
}
socket_close($socket); // Zatvorenie soketu
?>
  • Sekcia "URL":
    • file_get_contents(): Číta obsah súboru do reťazca (môže sa použiť aj pre HTTP).
    • file_put_contents(): Zapisuje dáta do súboru (môže sa použiť aj pre HTTP POST).
    • get_headers(): Vráti hlavičky HTTP odpovede.
    • parse_url(): Rozoberá URL na komponenty.
    • http_build_query(): Generuje reťazec požiadavky.
  • Sekcia "DNS":
    • gethostbyname(): Vráti IPv4 adresu hostiteľa.
    • gethostbyaddr(): Vráti názov hostiteľa pre IP adresu.
    • getmxrr(): Získa záznamy výmeny pošty (MX) pre doménu.
  • Sekcia "cURL" (vyžaduje rozšírenie cURL): Poskytuje viacúčelový klientsky mechanizmus na vykonávanie HTTP požiadaviek. Zahŕňa funkcie na prácu s cookies, proxy, autentifikáciou atď.
    • curl_init(): Inicializuje reláciu cURL.
    • curl_setopt(): Nastavuje možnosti pre reláciu cURL.
    • curl_exec(): Spúšťa reláciu cURL.
    • curl_close(): Zatvára reláciu cURL.
<?php
// Príklad použitia cURL na získanie obsahu stránky
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Vráti výsledok ako reťazec

$output = curl_exec($ch);

if ($output === false) {
    echo "Chyba cURL: " . curl_error($ch);
} else {
    echo $output;
}

curl_close($ch);
?>
  • Sekcia "Stream" (toky): PHP Streams poskytujú jednotné rozhranie pre rôzne typy zdrojov, vrátane sieťových soketov a HTTP.
    • stream_socket_client(): Otvára klientske spojenie.
    • stream_socket_server(): Vytvára serverové spojenie.
    • stream_select(): Čaká na zmeny stavu na viacerých tokoch.
  • Sekcia "FTP": Funkcie na prácu s FTP servermi.
    • ftp_connect(): Pripojenie k FTP serveru.
    • ftp_login(): Prihlásenie na FTP server.
    • ftp_get(): Stiahnutie súboru z FTP serveru.
    • ftp_put(): Nahrávanie súboru na FTP server.
  • Sekcia "Mail": Funkcie na odosielanie e-mailov.
    • mail(): Odosiela správu.

Výber konkrétnej funkcie závisí od úlohy. Na nízkoúrovňové práce s protokolmi sú vhodné sokety. Na jednoduché HTTP požiadavky možno použiť file_get_contents() alebo cURL. cURL je flexibilnejší a výkonný pre zložitejšie HTTP operácie. Toky poskytujú abstraktnejší prístup k sieťovej komunikácii.