vadnica-logo
Editor Moj Blog Moje storitve O projektu Telegram O meni O meni

Omrežne funkcije

Omrežne funkcije nam omogočajo interakcijo z internetnimi protokoli. Z njimi lahko beremo vsebino oddaljenih strani, pošiljamo e-pošto ali celo ustvarimo lastne mini strežnike s pomočjo vtičnic (sockets).

PRIMER
REZULTAT
Tu bo prikazan rezultat...

Vtičnice (Sockets)

PHP podpira nizkonivojsko programiranje s socket-i. Spodnji primer prikazuje logiko strežnika, ki posluša na določenih vratih. Opozorilo: Večina deljenih gostovanj blokira funkcijo socket_create zaradi varnosti. Te primere je najbolje testirati na lokalnem strežniku (XAMPP) ali VPS-u.

Ključni nasveti in varnost

Omrežno programiranje v PHP omogoča ustvarjanje robustnih aplikacij, ki komunicirajo z drugimi storitvami in API-ji.

Knjižnica omrežnih funkcij

Te funkcije so del PHP jedra in omogočajo manipulacijo z informacijami, preden strežnik pošlje izhod brskalniku. Ni potrebna dodatna namestitev.

Funkcija Opis Primer
checkdnsrr() Preveri zapise DNS za vrsto, ki ustreza gostitelju. echo checkdnsrr("google.com", "MX") ? "Obstaja" : "Ne obstaja";
closelog() Zapre povezavo sistemskega zapisovalnika. openlog("myApp", LOG_PID, LOG_USER); syslog(LOG_INFO, "Test"); closelog();
dns_check_record() Preveri DNS zapise za vrsto, ki ustreza gostitelju. echo dns_check_record("google.com", "A") ? "Najden" : "Ni najden";
dns_get_mx() Vrne MX zapise za navedeno ime gostitelja. dns_get_mx("google.com", $mx_hosts); print_自由_r($mx_hosts); (Opomba: v kodi uporabi print_r)
dns_get_record() Pridobi zapise DNS virov za ime gostitelja. $dns = dns_get_record("google.com", DNS_A); print_r($dns[0]);
fsockopen() Odpre povezavo internetne ali Unix vtičnice. $fp = @fsockopen("www.google.com", 80, $errno, $errstr, 5); echo $fp ? "Odprto" : "Zaprto";
gethostbyaddr() Vrne ime domene za dani IP naslov. echo gethostbyaddr("8.8.8.8"); // Izpiše: dns.google
gethostbyname() Vrne IPv4 naslov za dano ime domene. echo gethostbyname("google.com"); // Izpiše IP naslov
gethostbynamel() Vrne seznam naslovov IPv4 za ime domene. $ips = gethostbynamel("google.com"); print_r($ips);
gethostname() Vrne ime gostitelja. echo gethostname(); // Izpiše ime trenutnega strežnika
getmxrr() Vrne MX zapise za internetnega gostitelja. getmxrr("google.com", $mx); echo "Najdenih MX: " . count($mx);
getprotobyname() Vrne številko protokola za podano ime. echo getprotobyname("tcp"); // Izpiše: 6
getprotobynumber() Vrne ime protokola za dano številko. echo getprotobynumber(6); // Izpiše: tcp
getservbyname() Vrne številko vrat za internetno storitev. echo getservbyname("www", "tcp"); // Izpiše: 80
getservbyport() Vrne internetno storitev za dana vrata. echo getservbyport(80, "tcp"); // Izpiše: http
header() Pošlje neobdelano glavo HTTP odjemalcu. header("Content-Type: text/plain"); // Nastavi tekstovni izpis
header_register_callback() Pokliče funkcijo glave. header_register_callback(function(){ echo "Glave poslane!"; });
header_remove() Odstrani HTTP glavo nastavljeno s header(). header("X-Test: Resnica"); header_remove("X-Test");
headers_list() Vrne seznam glav odgovorov za brskalnik. $glave = headers_list(); print_r($glave);
headers_sent() Preveri, če ali kam so bile glave poslane. echo headers_sent() ? "Glave so že šle" : "Glave še čakajo";
http_response_code() Nastavi ali vrne statusno kodo HTTP odziva. echo http_response_code(404); // Nastavi kodo na 404 Not Found
inet_ntop() Pretvori IP naslove v berljivo obliko. echo inet_ntop(chr(127).chr(0).chr(0).chr(1)); // Izpiše: 127.0.0.1
inet_pton() Pretvori berljiv IP naslov v binarno obliko. echo bin2hex(inet_pton("127.0.0.1")); // Izpiše binarni hex
ip2long() Pretvori IPv4 naslov v celo število. echo ip2long("127.0.0.1"); // Izpiše: 2130706433
long2ip() Pretvori celo število v IPv4 format. echo long2ip(2130706433); // Izpiše: 127.0.0.1
openlog() Odpre povezavo sistemskega zapisovalnika. openlog("Sistem_Borut", LOG_PID, LOG_USER); syslog(LOG_NOTICE, "Zagon");
pfsockopen() Odpre trajno povezavo internetne vtičnice. $fp = @pfsockopen("localhost", 80); echo $fp ? "Trajno odprto" : "Ni povezave";
setcookie() Definira piškotek za HTTP glave. setcookie("uporabnik", "Borut", time() + 3600); // Velja 1 uro
socket_get_status() Preverja stanje I/O toka vtičnice. $fp = fsockopen("google.com", 80); print_r(socket_get_status($fp));
socket_set_blocking() Nastavi blokiran/neblokiran način vtičnice. $fp = fsockopen("google.com", 80); socket_set_blocking($fp, false);
stream_get_meta_data() Vrne informacij o pretoku/vtičnici (status, timeout, EOF). $fp = fsockopen("google.com", 80); print_r(stream_get_meta_data($fp));
syslog() Ustvari sporočilo sistemskega dnevnika. syslog(LOG_WARNING, "Opozorilo: Zaznana preobremenitev sistema!");