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.