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.