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.