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.
|
|