![]() |
PHPKurz PHP (19.) |
Úvodem | Kurz PHP | Odkazy | Aplikace | Otázky a odpovědi |
|
Síťové funkceMůže se stát, že budeme potřebovat vytvořit aplikaci, pracující se síťovými funkcemi. Pomocí integrovaných síťových funkcí můžeme například jednoduše zjišťovat jména, ip adresy atd. My si tyto jednotlivé funkce popíšeme a vysvětlíme si jejich význam. FSockOpenPomocí této funkce se můžeme připojit k danému hostitely na daný port. Této funkce můžeme využít zejména tehdy, pokud budeme potřebovat získat údaje ze serveru, naslouchajícího na zvolené adrese a portu. Tímto serverem může být například HTTP, FTP a jiné servery. Funkce se pokusí po daný timeout připojit na server a vrací deskriptor, se kterým můžeme pracovat, jako v případě souborových funkcí (viz díly dříve: fputs, fgets atd.). fsockopen(<adresa>, <port>, <errno>, <errstr>, <timeout>)
<? // Připojíme se k serveru www.seznam.cz $fp = fsockopen("www.seznam.cz", 80, $err, $errstr, 20); // V případě, že spojení skončí neúspěšně, zobrazíme chybové hlášení if ($fp) { // Odešleme http požadavek fputs($fp, "GET / HTTP/1.1\r\nHost: www.seznam.cz\r\n\r\n"); // Budeme číst až do konce while (!feof ($fp)) { // Do proměnné $data uložíme přečtený výsledek $data .= fgets($fp, 4096); } // Uzavřeme za sebou spojení fclose($fp); // A data následně zobrazíme echo $data; } else { echo "Nastala chyba: $errstr - $err"; } ?> GetHostByAddrPomocí této funkce můžeme zjistit doménové jméno počítače, podle zvolené IP adresy. Tuto funkci můžeme využít zejména v různých aplikacích, které zpracovávají jména přistupujících počítačů (například počítadla atd.). V případě neúspěchu vrací funkce zadanou IP adresu. gethostbyaddr(<ip adresa>)
<? // Zjistíme doménové jméno serveru 217.31.49.13 echo gethostbyaddr("217.31.49.13"); // Zjistíme doménové jméno návštěvníka echo gethostbyaddr("<br>" . $_SERVER['REMOTE_ADDR']); ?> GetHostByNamePomocí této funkce můžeme zjistit IP adresu počítače, podle zadaného doménového jména. Tuto funkci můžeme opět využít zejména v různých aplikacích, které zpracovávají jména přistupujících počítačů (například počítadla atd.). gethostbyname(<doménové jméno>)
<? // Zjistíme IP adresu serveru www.aspweb.cz echo gethostbyname("www.aspweb.cz"); // Zjistíme IP adresu návštěvníka echo gethostbyname("<br>" . $_SERVER['REMOTE_HOST']); ?> GetHostByNamelPomocí této funkce můžeme zjistit pole IP adres počítače, podle zadaného doménového jména. gethostbynamel(<doménové jméno>)
<? // Zjistíme IP adresy serveru www.seznam.cz print_r(gethostbynamel("www.seznam.cz")); // Výsledkem bude /* Array ( [0] => 212.80.76.18 [1] => 212.80.76.3 ) */ ?> IP2LongPomocí této funkce můžeme převést zvolenou IP adresu na síťovou IPv4 adresu. Pro zjištění správné, nezáporné hodnoty je potřeba výsledek této funkce převést pomocí funkce sprintf s formátem "%u". ip2long(<IP adrea>)
<? // Zobrazíme síťovou adresu echo sprintf("%u", ip2long("127.0.0.1"); ?> Long2IPTato funkce je opakem funkce ip2long, která vrací IP adresu podle zvolené síťové IP adresy. ip2long(<síťová adresa>)
<? // Zobrazíme IP adresu echo long2ip("2130706433"); ?> PFSockOpenTato funkce je podobná funci FSockOpen, avšak vytvoří tzv. perzistentní spojení. Spojení se po ukončení skriptu neuzavře. Tuto funkci musí poskytovatel podporovat (mít povolenu) a samozřemě ji musí podporovat i daný server, ke kterému se připojujeme. pfsockopen(<adresa>, <port>, <errno>, <errstr>, <timeout>)
ZávěrV dnešní části jsme si ukázali práci s několika mnohdy důležitými funkcemi, které se nám určitě někdy budou hodit.
Pro tento díl to bude vše. V příštím díle budeme dále pokračovat v poznávání jazyka PHP.
|
|