Napredno web programiranje

Слични документи
PHP kod

OVO JE ZVANIČAN RCUB TEMPLATE: Normal

PowerPoint Presentation

Повезивање са интернетом

Uvod u Python

PowerPoint Presentation

WordPress & CSP Polisa Sigurnosti Sadržaja za WordPress Milan Petrović WordCamp Niš

Internet

Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka

Mrežno računarstvo

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Programski jezik C

Podešavanje za eduroam – Windows Vista operativni sistem

Upute-podesavanj -accounta

Uvod u računarstvo 2+2

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

DIGITALNA OBRADA SLIKE

Rad u mrežnom okruženju Osnove informatike s primjenom računala

Biz web hosting

ZIS

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

Microsoft PowerPoint - 06 Uvod u racunarske mreze.ppt

Slide 1

PowerPoint Presentation

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Microsoft PowerPoint - Datoteke [Compatibility Mode]

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

_Outlook

Datoteke predavač: Nadežda Jakšić

DIGITALNA OBRADA SLIKE

Programski jezici i strukture podataka

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

PowerPoint Presentation

KREIRANJE TORRENTA Ako zelite da kreirate torrent fajl od nekog fajla ili foldera u vasem racunaru a kasnije podeliti sa drugim korisnicima i uploadov

** Osnovni meni

Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #07 [нерецензи

MREŽNI SERVISI VTS NIS OSNOVNE STUDIJE SAVREMENE RAČUNARSKE TEHNOLOGIJE V SEMSESTAR

Slide 1

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

Microsoft Word - privitak prijedloga odluke

Mrežno računarstvo

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om -

Приручник о полагању матурског испита у образовном профилу Електротехничар информационих технологија - оглед ВЕБ ДИЗАЈН У следећим задацима заокружите

CLI

SELECT statement basic form

Microsoft Word - SYLLABUS -Dinamicki

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Microsoft Word - CCERT-PUBDOC doc

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Uputstvo za upotrebu studentskih servisa - gef

PuTTY CERT.hr-PUBDOC

PowerPoint Presentation

Повезивање са интернетом

PRAVLJENJE VASEG PROXY SERVERA - ZA ANONIMNO SURFANJE... Jednostavno mozete napraviti vas proxy server i anonimno surfati po netu gde god zelite ne os

Lekcija 6 Prikaz podataka na graficima. Upis u fajl. 1. Cilj vežbe Cilj vežbe je da studente upozna sa: načinima prikaza podataka na različitim grafič

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

Računarski praktikum II - Predavanje 03 - Apache Web server

Microsoft Word - IP_Tables_programski_alat.doc

Microsoft Word - DNS_DHCP.doc

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

PowerPoint Presentation

Uputstvo za upotrebu studentskih servisa - gef

PowerPoint Presentation

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

Microsoft Word - 13-Mreze.doc

Microsoft Word - X-Lite_EUnetUputstvo_Mart11.doc

Slide 1

Kontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrse

EMS-ESS-UG-001-SRB-Ucesnik.doc

Primenjeno programiranje - vezbe GUI i baze podataka

KATALOG ZNANJA IZ INFORMATIKE

Visoka poslovna škola strukovnih studija Valjevo Primeri pitanja za polaganje prijemnog ispita Predmet: Informatika Valjevo, mart 2018.

Писање и превођење модула

PowerPoint Presentation

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

FAMILY SAFETY - PORODIČNA BEZBJEDNOST Program Family safety veoma je koristan za ograničavanje sadržaja i aplikacija koje učenici mogu koristiti na šk

Препоруке безбедности мрежних сервиса Copyright 2015 АМРЕС

Microsoft Word - MySQL_3.doc

XHTML 2.0 and HTML 5

Uputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Baze podataka MySQL Community Server i MySQL Workbench

PowerPoint Presentation

Microsoft Word - CCERT-PUBDOC doc

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft Word - Tehnicka uputstva lica doc

VNLab

(Microsoft PowerPoint - 412_Buni\346 HTV.ppt [Compatibility Mode])

CENOVNIK USLUGA maj godine

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Postoji jedan mali alat pomocu koga mozete bez ikakvih problema i vrlo jednostavno downloadovati gotovo sve windows updejte,za naravno sve windows ope

Slide 1

ELEKTRONSKO BANKARSTVO BBI Instalacija USB ključa - Windows XP operativni sistem - Windows Vista i Windows 7 operativni sistem

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

Транскрипт:

Napredno web programiranje

Zend Technologies

Termini koje treba razumeti File wrappers Streams Sockets Blocking calls php.ini Settings allow_url_fopen (Filesystem) auto_detect_line_endings (Filesystem) default_socket_timeout (Filesystem) from (Filesystem) user_agent (Filesystem)

Tehnike koje treba savladati Filesystem functions Network functions Socket functions Stream functions URL functions List of supported protocols/wrappers List of supported transports

Wrapper i File wrapper i su delovi koda koje PHP koristi da bi čitao i upisivao podatke iz različitih tipova fajlova Wrapper je deo PHP ove Stream arhitekture Kada PHP treba da pristupi nekom fajlu, koriste se neko od funkcionalnosti filesystem a koje PHP nudi Funkcionalnost filesystem a je da izabere wrapper U zavisnosti od imena fajla, PHP bira odgovarajući wrapper i rezultat njegovog rada sa fajlom vraća direktno PHP skripti

Šema pristupa fajlu u PHPu

Kako mi biramo wrapper PHPu se može reći koji file wrapper da koristi Ovo se radi kroz URL adresu scheme://path/to/file ili \\smbserver\share\path\to\file Ako nema podrške dšk za scheme, PHP će predpostaviti i da se radi sa tradicionalnim disk based fajlovima <?php // Selecting a file wrapper using fopen() we will open the // // this example script file this uses the file:// wrapper echo This file is called:. FILE. \n ; $fp = fopen( FILE, r ); fclose($fp);?>

Šta Built In Wrapper omogućava PHP inicijalno ima veliki broj wrappera koji se mogu koristiti: file:// (Ovo je rad sa klasičnim fajlovima u lokalu) \\smbserver\share\path\to\file (Ovim se omogućava pristup pfajlovima upotrebom Microsoft ovog file sharing a ili UNIX ovog rešenja Samba) http:// ili https:// (Ovim se omogućava komunikacija sa web sajtom upotrebom HTTP mrežnog protokola. Može se koristiti user_agent setings u php.ini da bi se udeljenom serveru definiše za koji se browser isporučuje sadržaj)

Šta Built In Wrapper omogućava ftp:// i ftps:// (Ovim se omogućava komunikacija sa FTP serverom. To uključuje upload i download fajlova. Logovanjem na FTP server, anonimni korisnik može se predstaviti svojom e mail adresom ako se to podesi u u from delu u php.ini setingsu.) php:// p (Ovim se omogućava pristup pphp ovim standardnim input, output, i error streamingu npr. POST podacima) Komprimovani stream compress.zlib:// i compress.bzip2:// (Ovim se omogućava čitanje fajlova koji su komprimovani sa gzip ili bzip2 ili njihovo kreiranje uz registraciju kroz stream_wrapper_register() funkciju od verzije 4.3.2 )

Dodatne opcije Postoji još 10 mogućnosti koje wrepper i podržavaju Međutim, ovo ne može da podrži svaki wreppera u svakoj situaciji, pa se vode kao mogućnosti nižeg nivoa Tačan popis mogućnosti za konkretne situacije može se naći u List of Supported Wrappers/Protocols u dodatku PHP Manual a

Opisi Restrikcija putem allow_url_fopen (allow_url_fopen setings u php.ini se koristi da se zaštiti od pristupa drugih fajlova kroz mrežu. Na neke wrapper e ovaj parametar ne utiče, pa treba proveriti za konkretan wrapper) Dozvola reading (Ova operacija omogućava čitanje podatka upotrebom wrapper a. Većina wrapper a ovo podržava, ali ne i php://stdout p i php://stderr) p Dozvola writing (Ova operacija omogućava upis podatka upotrebom wrapper a. Većina wrapper a ovo podržava, ali ne i http://) Allows appending (Ova operacija omogućava ć dodavanje d podataka na postojeće stanje Ovo je omogućeno sa wrapper om compress.zlib:// ali ne i sa ftp:// wrapper.) Dozvola simultanog reading i writing (Ova operacija omogućava otvaranje fajla za upis i čitanje podatka upotrebom wrapper a. Većina wrapper a ovo ne podržava, ali podržava ili jednu ili drugu pojedinačnu opciju)

Opisi Podrška za stat(), Ova funkcija omogućava dobijanje informacija u vezi sa fajlom. Podrška za unlink(), Ova funkcija omogućava da se fajl izbriše. Ne podržavaju svi wrapper i ovu mogućnost. Podrška za rename(), Ova funkcija omogućava da se ime fajla promeni. Ne podržavaju svi wrapper i ovu mogućnost. Podrška za mkdir(), Ova funkcija omogućava da se kreira folder tj. direktorijum. ij Ne podržavaju dž svi wrapper i ovu mogućnost. Podrška za rmdir(), Ova funkcija omogućava da se izbriše folder tj. direktorijum. Ne podržavaju svi wrapper i ovu mogućnost.

Upotreba file wrapper a Kada se pomoću fopen() selektuje file wrapper mogu se koristiti sledeće funkcije file sistema Pojedini file wrapper i ne podržavaju neko od ovih funkcija i mogu vratiti error

fgets() Funkcija fgets() vraća kompletnu liniju teksta u odnosu na karakter koji predstavlja kraj linje U principu, fgets() traži default grupu karaktera ne vodeči računa iz kog operativnog sistema dolazi fajl Opcija auto_detect_line_endings u php.ini omogućava da se promeni način rada fgets(). Ako se ova opcija podesi na on, tada fgets() vodi računa kako je u konkretnom fajlu definisan kraj linije, umesto što koristi default nu grupu karaktera

Još po nešto o file wrapper u Nakon rada sa wrapper om, dobra je praksa da se on zatvori pomoću fclose() Od verzije PHP a 4.3.0 postoji nekoliko funkcija koje se mogu koristiti za rad sa wrappper ima, kada se radi sa fajlovima: copy() file_get_contents() file() readfile()

Stream Stream je način kako PHP pristupa fajlu ili mrežnom servisu PHP kreira stream u pozadini i svakog pristupa fajlu

Stream Stream se sastoji od velikog broja manjih komponenti Svaki stream ima transport, najčešće file wrapper, jednu ili dva kanala i neki sadržaj. PHP čuva metadata za svaki stream. Metadata za stream sadrži: Koje komponente je stream ima Dodatne informacije u wrapper u kojima se ne može pristupiti it iti primenom fread() ili sličniih iih Veliki broj podataka dostupan PHP skripti za čitanje Podatak da li je vreme konekcije isteklo ili ne Da li je stream blokiran ili ne Da li su svi podaci iz stream a pročitani ili ne

stream_get_meta_data() Dohvatananje podataka iz metadata streama je pomoću stream_get_meta_data() <?php // we will create a stream by opening this stream, and then we ll // dump the metadata out to see what s there echo Metadata for file:. FILE. \n\n ; $fp = fopen( FILE, r ); var_dump(stream_get_meta_data($fp)); fclose($fp);?> array(6) { [ wrapper_type ]=> string(9) plainfile [ stream stream_type type ]=> string(5) STDIO [ unread_bytes ]=> int(0) [ timed_out ]=> bool(false) [ blocked ]=> bool(true) [ eof ]=> bool(false) }

Primer <?php // http file wrapper // we will create a stream by opening a connection to the PHP // Project s own web server, and then dump the metadata to see // what we have echo Metadata from a connection to: http://www.php.net/\n\n ; $fp $p= fopen( http://www.php.net/, p p p /, r ); stream_filter_append($fp, string.rot13 ); var_dump(stream_get_meta_data($fp)); fclose($fp);?>

Kanali za transport Podaci u stream u prenose se korz jedan ili dva kanala Podaci poslati u stream od strane PHP koda ka nekom fjl fajlu ili mreži Podaci koji se prihvataju od strane fajla ili mrežnog servera. Neki stream ima oba kanala, dok neki ima samo jedan od njih (read pipeline tj. write pipeline)

Stream Transport Na kraju kanala, gledano od strane PHP koda, je stream transport Stream transport je deo koda koji omogućava file wrapperu da direktno komunicira sa bilo kojim stream om na koji je konektovan PHP ima veliki broj ugrađenih transport a STDIO (transport za klasične fajlove, posebno resurse kao što je stdin i stdout) Socket (transport za komunikaciju sa serverom kroz mrežu) PHP automatski bira najbolji transport koji će koristiti sa j j p j file wrapper om koji je definisao programer.

Stream Context Stream context, ili sadržaj stream a, je deo podataka koji se prenosi putem stream a Koristi se za prenos dodatnih opcija za file wrapper ili stream transport. Ovaj sadržaj se generiše upotrebom funkcije stream_context_create(), create() a zatim se prenosi kao parametar funkcije fopen() ili fsockopen(). Različiti file wrapper i i stream transporti prihvataju različite opcije. Na primer, mogu se preneti i opcije za file wrapper i osnovni sadržaj stream transporta u isto vreme. U realnom životu, programer se sa stream om najčešće susreće kroz upotrebu funkcije fopen(), a ređe sa drugim

Koji mrežni transport podržava PHP tcp (konekcija upotrebom Transmission Control Protocol dela TCP/IP udp (konekcija upotrebom User Datagram dela TCP/IP ) ssl (konekcija upotrebom Secure Sockets Layer encryption. SSL radi preko TCP konekcije) j) tls (konekcija upotrebom Transport Layer Security encryption.tls radi preko TCP konekcije) unix (konekcija k na servise koji rade na lokalnom l računaru upotrebom connection orientated UNIX Domain protokola) udg (konekcija na servise koji rade na lokalnom računaru upotrebom connection less UNIX Domain protokola)

Soket Kada se pristupa udeljenom serveru kroz mrežnu infrastrukturu, sva komunikacija se realizuje od strane operativnog sistema računara. Kada se pristupa nekom fajlu na udaljenom dl računara, operativni sistem kreira file handle, ali ako se pristupa serveru, kreira se resurs koji se zove soket. File handle i sockets su vrlo slični i i PHP pokušava da međusobne razlike drži na minimumu. Neki file wrapper i omogućavaju da se pristupmi mrežnom serveru (http) U tom smislu, soket se mora koristiti samo kada file wrapper ne može da uradi neku aktivnost ili kada wrapper ne postoji za neku konkretnu akciju (npr. slanje XML RPC message)

Otvaranje soket a Kreiranje soketa je moguće upotrebom funkcije fsockopen() (konekcija se automatski zatvara kada se skript završi)i pfsockopen(nakonzatvaranja i ponovnog otvaranja koristi se predhodna konekcija) Nakon otvaranja potrebno je definisati koji tip transporta će se koristiti uz definisanje imena ili IP adrese servera na koji se želi konektovati.

Primer <?php // Using fsockopen() // we will open a connection to the PHP Project s website, and download // their front page // note that what comes back is a redirect, and not the front page itself // this is an example of one of the many things that the http file wrapper // automatically ti (and transparently) tl handles for us $fp = fsockopen ( tcp://www.php.net, 80, $sock_errno, $sock_errmsg); fwrite ($fp, GET /\n ); while (!feof($fp)) f( f { echo fgets($fp). \n ; } fclose($fp);?>

Rad sa soketima Ako se ne definiše parametar timeout za fsockopen(), PHP koristi vrednost iz default_socket_timeout unutar php.ini setingsa Ovaj parametar utiče samo na otvaranje soketa, ali ne i na operacije čitanja i pisanja Nakon otvaranja soketa, čitanje se vrči pomoću fread() i sličnih funkcija, dok pisanje pomoću fwrite() i sl. Kada PHP napravi soket on ulazi u blocking mod za taj stream, i čitanje za druge je nemoguće dok se soket ne zatvori od strane udaljenog dlj servera

Timeout za read/write Da bi se izbeglo isključenje blocking moda, može se koristiti stream_set_timeout() da se definiše timeout za čitanje ili pisanje. <?php $fp= fsockopen( tcp://wwwphpnet tcp://www.php.net, 80, $sock_errno, $sock_errmsg); stream_set_timeout($fp, 10); echo Attempting to read from the stream... this will timeout in 10 secs\n\n ; $result = fgets($fp); fl fclose($fp); f echo The fgets() has timed out, and returned:\n ; var_dump($result);?>

Zatvaranje soketa Nakon završenog rada sa soketom, potrebno ga je što pre zatvoriti Računar na kome se izvršava PHP kod ima limitiran broj soketa Zatvaranje soketa je pomoću fclose() <?php $fp = fsockopen ( tcp://www.php.net, 80, $sock_errno, $sock_errmsg); fclose($fp); echo We have opened and closed the stream. When we attempt to read from\n ; echo the stream, PHP will output an error on your screen.\n ; echo fgets($fp);?>

Zend Technologies

Napredno web programiranje