Junior
Ce funcții de rețea există în PHP?
sobes.tech AI
Răspuns de la AI
În PHP există numeroase funcții de rețea care acoperă diferite aspecte ale lucrului cu rețelele. Cele mai frecvent utilizate sunt:
- Secțiunea "Sockets" (
Sockets) :socket_create(): Creează un socket.socket_connect(): Stabileste o conexiune cu un gazdă de la distanță.socket_bind(): Leagă socket-ul la o adresă și port.socket_listen(): Ascultă conexiuni intrante pe socket.socket_accept(): Acceptă o conexiune intrantă.socket_read(): Citește date din socket.socket_write(): Scrie date în socket.socket_close(): Închide socket-ul.socket_last_error(): Returnează ultimul cod de eroare al socket-ului.socket_strerror(): Returnează o descriere în șir a erorii socket-ului.
<?php
// Exemplu de creare și conectare a unui socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() nu a reușit: motiv: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "Socket creat.\n";
}
$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
echo "socket_connect() nu a reușit: motiv: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Conexiune stabilită.\n";
}
socket_close($socket); // Închide socket-ul
?>
- Secțiunea "URL" :
file_get_contents(): Citește conținutul unui fișier într-un șir (poate fi utilizat pentru HTTP).file_put_contents(): Scrie date într-un fișier (poate fi utilizat pentru HTTP POST).get_headers(): Returnează anteturile răspunsului HTTP.parse_url(): Analizează un URL în componentele sale.http_build_query(): Generează un șir de interogare.
- Secțiunea "DNS" :
gethostbyname(): Returnează adresa IPv4 a gazdei.gethostbyaddr(): Returnează numele gazdei pentru o adresă IP.getmxrr(): Obține înregistrările MX (schimb de poștă) pentru un domeniu.
- Secțiunea "cURL" (necesită extensia cURL): Oferă un mecanism client multifuncțional pentru executarea cererilor HTTP. Include funcții pentru lucrul cu cookie-uri, proxy-uri, autentificare etc.
curl_init(): Inițializează o sesiune cURL.curl_setopt(): Setează opțiuni pentru sesiunea cURL.curl_exec(): Execută sesiunea cURL.curl_close(): Închide sesiunea cURL.
<?php
// Exemplu de utilizare cURL pentru obținerea conținutului unei pagini
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Returnează rezultatul ca șir
$output = curl_exec($ch);
if ($output === false) {
echo "Eroare cURL: " . curl_error($ch);
} else {
echo $output;
}
curl_close($ch);
?>
- Secțiunea "Stream" (fluxuri): Fluxurile PHP oferă o interfață unificată pentru diferite tipuri de resurse, inclusiv socket-uri de rețea și HTTP.
stream_socket_client(): Deschide o conexiune de client de rețea.stream_socket_server(): Creează o conexiune de server de rețea.stream_select(): Așteaptă modificări în starea mai multor fluxuri.
- Secțiunea "FTP" : Funcții pentru lucrul cu servere FTP.
ftp_connect(): Stabileste o conexiune cu un server FTP.ftp_login(): Se autentifică pe serverul FTP.ftp_get(): Descarcă un fișier de pe serverul FTP.ftp_put(): Încarcă un fișier pe serverul FTP.
- Secțiunea "Mail" : Funcții pentru trimiterea de emailuri.
mail(): Trimite un email.
Alegerea unei funcții specifice depinde de sarcină. Pentru lucrul la nivel scăzut cu protocoale, sunt recomandate socket-urile. Pentru cereri HTTP simple, se pot folosi file_get_contents() sau cURL. cURL este mai flexibil și mai puternic pentru operațiuni HTTP complexe. Fluxurile oferă o abordare mai abstractă pentru comunicațiile de rețea.