Sobes.tech
Junior

Koje mrežne funkcije postoje u PHP?

sobes.tech АИ

Одговор од АИ

U PHP-u postoji mnogo mrežnih funkcija koje pokrivaju različite aspekte rada sa mrežom. Najčešće korišćene su:

  • Odsek "Soketi" (Sockets):
    • socket_create(): Kreira soket.
    • socket_connect(): Uspostavlja vezu sa udaljenim hostom.
    • socket_bind(): Veže soket za adresu i port.
    • socket_listen(): Sluša na dolazne veze.
    • socket_accept(): Prihvata dolaznu vezu.
    • socket_read(): Čita podatke iz soketa.
    • socket_write(): Piše podatke u soket.
    • socket_close(): Zatvara soket.
    • socket_last_error(): Vraća poslednji kod greške soketa.
    • socket_strerror(): Vraća tekstualni opis greške soketa.
<?php
// Primer kreiranja i povezivanja na soket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() nije uspeo: razlog: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Soket je kreiran.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() nije uspeo: razlog: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Veza uspostavljena.\n";
}
socket_close($socket); // Zatvaranje soketa
?>
  • Odsek "URL":
    • file_get_contents(): Čita sadržaj fajla u string (može se koristiti za HTTP).
    • file_put_contents(): Piše podatke u fajl (može se koristiti za HTTP POST).
    • get_headers(): Vraća zaglavlja HTTP odgovora.
    • parse_url(): Razbija URL na komponente.
    • http_build_query(): Generiše string upita.
  • Odsek "DNS":
    • gethostbyname(): Vraća IPv4 adresu hosta.
    • gethostbyaddr(): Vraća ime hosta za IP adresu.
    • getmxrr(): Dobija zapise razmene pošte (MX) za domen.
  • Odsek "cURL" (zahteva proširenje cURL): Pruža višefunkcionalni klijentski mehanizam za izvršavanje HTTP zahteva. Uključuje funkcije za rad sa kolačićima, proxy-jem, autentifikacijom itd.
    • curl_init(): Inicijalizuje cURL sesiju.
    • curl_setopt(): Postavlja opcije za cURL sesiju.
    • curl_exec(): Izvršava cURL sesiju.
    • curl_close(): Zatvara cURL sesiju.
<?php
// Primer korišćenja cURL za dobijanje sadržaja stranice
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Vraća rezultat kao string

$output = curl_exec($ch);

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

curl_close($ch);
?>
  • Odsek "Stream" (tokovi): PHP Streams pružaju ujednačen interfejs za različite tipove resursa, uključujući mrežne sokete i HTTP.
    • stream_socket_client(): Otvara klijentsku mrežnu vezu.
    • stream_socket_server(): Kreira serversku mrežnu vezu.
    • stream_select(): Čeka promene stanja na više tokova.
  • Odsek "FTP": Funkcije za rad sa FTP serverima.
    • ftp_connect(): Povezuje se na FTP server.
    • ftp_login(): Prijavljuje se na FTP server.
    • ftp_get(): Preuzima fajl sa FTP servera.
    • ftp_put(): Učitava fajl na FTP server.
  • Odsek "Mail": Funkcije za slanje elektronske pošte.
    • mail(): Šalje poruku.

Izbor konkretne funkcije zavisi od zadatka. Za niskonivojske radove sa protokolima odgovaraju soketi. Za jednostavne HTTP zahteve mogu se koristiti file_get_contents() ili cURL. cURL je fleksibilniji i moćniji za složenije HTTP operacije. Tokovi pružaju apstraktniji pristup mrežnoj komunikaciji.