Sobes.tech
Junior

Milyen hálózati funkciók vannak a PHP-ben?

sobes.tech MI

Válasz az MI-től

A PHP-ben számos hálózati funkció található, amelyek különböző hálózati műveleteket fednek le. A leggyakrabban használtak a következők:

  • "Socket" szekció (Sockets):
    • socket_create(): Socket létrehozása.
    • socket_connect(): Kapcsolat létesítése távoli hoszttal.
    • socket_bind(): Socket kötése címhez és porthoz.
    • socket_listen(): Bejövő kapcsolások figyelése.
    • socket_accept(): Bejövő kapcsolat elfogadása.
    • socket_read(): Adatok olvasása a socketből.
    • socket_write(): Adatok írása a socketbe.
    • socket_close(): Socket bezárása.
    • socket_last_error(): Utolsó socket hiba kódjának visszaadása.
    • socket_strerror(): Socket hiba leírásának visszaadása.
<?php
// Socket létrehozása és kapcsolódás példája
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() nem sikerült: ok: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Socket létrehozva.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() nem sikerült: ok: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Kapcsolat létrejött.\n";
}
socket_close($socket); // Socket bezárása
?>
  • "URL" szekció:
    • file_get_contents(): Fájl tartalmának beolvasása stringként (HTTP-re is használható).
    • file_put_contents(): Adatok írása fájlba (HTTP POST-hoz is használható).
    • get_headers(): HTTP válasz fejlécének visszaadása.
    • parse_url(): URL felbontása összetevőkre.
    • http_build_query(): Kérésorozat generálása.
  • "DNS" szekció:
    • gethostbyname(): A hoszt IPv4 címének visszaadása.
    • gethostbyaddr(): A IP címhez tartozó hoszt név visszaadása.
    • getmxrr(): E-mail exchange rekordok (MX) lekérése domainhez.
  • "cURL" szekció (cURL kiterjesztés szükséges): Többfunkciós kliens mechanizmus HTTP kérések végrehajtásához. Tartalmaz funkciókat cookie-k, proxy, hitelesítés kezelésére stb.
    • curl_init(): cURL munkamenet inicializálása.
    • curl_setopt(): Beállítások megadása a cURL munkamenethez.
    • curl_exec(): A cURL munkamenet végrehajtása.
    • curl_close(): A cURL munkamenet lezárása.
<?php
// cURL használata oldal tartalmának lekéréséhez
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Eredmény stringként vissza

$output = curl_exec($ch);

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

curl_close($ch);
?>
  • "Stream" (Áramlatok) szekció: A PHP Áramlatok egységes felületet biztosítanak különböző erőforrástípusokhoz, beleértve a hálózati socketeket és HTTP-t.
    • stream_socket_client(): Kliens hálózati kapcsolat nyitása.
    • stream_socket_server(): Szerver hálózati kapcsolat létrehozása.
    • stream_select(): Állapotváltozások várása több áramlaton.
  • "FTP" szekció: Funkciók FTP szerverekkel való munkához.
    • ftp_connect(): Kapcsolódás FTP szerverhez.
    • ftp_login(): Bejelentkezés FTP szerveren.
    • ftp_get(): Fájl letöltése FTP szerverről.
    • ftp_put(): Fájl feltöltése FTP szerverre.
  • "Mail" szekció: Funkciók e-mail küldéséhez.
    • mail(): Levél küldése.

A konkrét funkció kiválasztása a feladattól függ. Alacsony szintű protokollokhoz a socketek alkalmasak. Egyszerű HTTP kérésekhez használható a file_get_contents() vagy a cURL. A cURL rugalmasabb és erősebb összetettebb HTTP műveletekhez. Az áramlatok magasabb szintű absztrakciót nyújtanak a hálózati kommunikációban.