Sobes.tech
Junior

Millised võrgufunktsioonid on PHP-s olemas?

sobes.tech AI

Vastus AI-lt

PHP-s on palju võrgufunktsioone, mis hõlmavad erinevaid võrguga seotud aspekte. Kõige sagedamini kasutatavad on:

  • "Sokettide" jaotis (Sockets):
    • socket_create(): loob soketi.
    • socket_connect(): loob ühenduse kaughostiga.
    • socket_bind(): seob soketi aadressi ja pordiga.
    • socket_listen(): kuulab sissetulevaid ühendusi.
    • socket_accept(): aktsepteerib sissetulevat ühendust.
    • socket_read(): loeb andmeid soketist.
    • socket_write(): kirjutab andmeid soketisse.
    • socket_close(): sulgeb soketi.
    • socket_last_error(): tagastab viimase vea koodi.
    • socket_strerror(): tagastab vea kirjelduse stringina.
// Näide, kuidas luua ja ühendada soket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() ebaõnnestus: põhjus: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Sokett on loodud.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() ebaõnnestus: põhjus: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Ühendus on loodud.\n";
}
socket_close($socket); // Sulgeb soketi
?>
  • "URL" jaotis:
    • file_get_contents(): loeb faili sisu stringina (saab kasutada HTTP jaoks).
    • file_put_contents(): kirjutab andmeid faili (saab kasutada HTTP POST jaoks).
    • get_headers(): tagastab HTTP vastuse päised.
    • parse_url(): analüüsib URL-i komponentideks.
    • http_build_query(): genereerib päringu stringi.
  • "DNS" jaotis:
    • gethostbyname(): tagastab hosti IPv4 aadressi.
    • gethostbyaddr(): tagastab IP-aadressi hosti nime.
    • getmxrr(): saab e-posti vahetamise kirjeid (MX) domeeni jaoks.
  • "cURL" (nõuab cURL laiendust): pakub mitmeotstarbelist klientmehhanismi HTTP-päringuteks. sisaldab funktsioone küpsiste, proxy, autentimise jms jaoks.
    • curl_init(): initsialiseerib cURL-i sessiooni.
    • curl_setopt(): seab seadeid cURL-i sessioonile.
    • curl_exec(): täidab cURL-i sessiooni.
    • curl_close(): sulgeb cURL-i sessiooni.
// Näide cURL-i kasutamisest lehekülje sisu saamiseks
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // tagastab tulemuse stringina

$output = curl_exec($ch);

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

curl_close($ch);
?>
  • "Stream" (voog): PHP voogud pakuvad ühtset liidest erinevat tüüpi ressurssidele, sealhulgas võrgusoketid ja HTTP.
    • stream_socket_client(): avab kliendi võrguside.
    • stream_socket_server(): loob serveri võrguside.
    • stream_select(): ootab muutusi mitmel voogudel.
  • "FTP" jaotis: funktsioonid FTP-serveritega töötamiseks.
    • ftp_connect(): loob ühenduse FTP-serveriga.
    • ftp_login(): autentib FTP-serveris.
    • ftp_get(): laadib faili FTP-serverist.
    • ftp_put(): laadib faili FTP-serverisse.
  • "Mail" jaotis: funktsioonid e-kirjade saatmiseks.
    • mail(): saadab kirja.

Valik sõltub ülesandest. Madala taseme protokollide jaoks sobivad soketid. Lihtsate HTTP-päringute jaoks saab kasutada file_get_contents() või cURL-i. cURL on paindlikum ja võimsam keerukate HTTP-operatsioonide jaoks. Voogud pakuvad abstraktsemat lähenemist võrguside kommunikatsioonile.