Práce se soubory opakování



Podobné dokumenty
Webové služby. Martin Sochor

Ukazka knihy z internetoveho knihkupectvi

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

Část 1 Moderní JavaScript

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

1 Webový server, instalace PHP a MySQL 13

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

PRG036 Technologie XML

Návrh a tvorba WWW stránek 1/38 PHP

Formuláře. Internetové publikování

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Michal Krátký, Miroslav Beneš

Java a XML. 10/26/09 1/7 Java a XML

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

PHP a XML. Stručný obsah

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Microsoft Office 2003 Souhrnný technický dokument white paper

NSWI096 - INTERNET JavaScript

Rozhraní pro práci s XML dokumenty. Roman Malo

1. Webový server, instalace PHP a MySQL 13

NÁVRH A REALIZACE WWW PREZENTACE ČKR

XML a nové trendy v publikování na Webu

Tvorba informačních systémů

Databáze Caché CSP Custom Tags

Pokročilé Webové služby a Caché security. Š. Havlíček

Obsah. Předmluva Začínáme: překlad, spuštění a ladění 27

TÉMATICKÝ OKRUH Softwarové inženýrství

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

Systém pro automatizaci srovnávání produktů konkurence

Ant aneb Ferda Mravenec, práce všeho druhu

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

Základy PHP. Úvod do jazyka PHP a principů skriptování na straně serveru

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

12. Základy HTML a formuláře v HTML

Oracle XML DB. Tomáš Nykodým

APLIKACE XML PRO INTERNET

pracuje na principu Požavek/Odpověď (request/response) výhodou je jednoduchost a teoretická možnost přenášet objekty jakéhokoliv druhu

Helios RED a Internetový obchod

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Python XML a Web 1 PGS

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

XML. Aleš Keprt

Komunikace eorders. aegis. aegis.cz. Konference Common 2009 Malá Fatra. Evžen Kučera

Na tomto místě bude oficiální zadání vaší práce

Jemný úvod do spracovania XML

4. POČÍTAČOVÉ CVIČENÍ

Obsah. Stručná historie World Wide Webu 7

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

1 Datové struktury - Šnábl datové typy, deklarace, definice a inicializace proměnných viditelnost proměnných, lokální a globální proměnné dynamická a

Uspořádání klient-server. Standardy pro Web

Systém elektronického rádce v životních situacích portálu

Inteligentní podpora navigace na WWW

Úvod do Web Services

Webové Aplikace (6. přednáška)

XML terminologie a charakteristiky. Roman Malo

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

Nástroj WebMaker TXV první vydání Únor 2009 změny vyhrazeny

Dotazování nad stromem abstraktní syntaxe

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

(X)HTML. Internetové publikování

MBI - technologická realizace modelu

Principy operačních systémů. Lekce 7: Souborový systém

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů

Kolaborativní aplikace

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Automatizované sledování informací na webech

Tvorba informačních systémů

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Komponentní technologie

Tvorba informačních systémů

Úvod do tvorby internetových aplikací

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Alena Malovaná, MAL305

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI]

Popis rozhraní Číselníkové webové služby

Správa linuxového serveru: Webová rozhraní k poště (Squirrelmail a Roundcube)

Globální architektura ROS

Uživatelská příručka

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Programový generátor trendů Václav Bárta

Jazyky pro popis dat

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

Úvod do aplikací internetu a přehled možností při tvorbě webu

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Formuláře. Internetové publikování. Formuláře - příklad

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Dotazování nad XML daty a jazyk XPath

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Microsoft Office 2003 Souhrnný technický dokument white paper

SPRÁVA ZÁKLADNÍCH REGISTRŮ PODMÍNKY PRO PŘIPOJENÍ AGENDOVÝCH INFORMAČNÍCH SYSTÉMŮ DO ISZR. verze 2.00

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

Realizace komunikačního profilu a uživatelského rozhraní pro generátor síťového provozu

PRG036 Technologie XML

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

Lehký úvod do XML v kartografii

Transkript:

Práce se soubory

Práce se soubory opakování Nízko-úrovňové (C-čkové) API. fopen(), fread(), fwrite(), fclose() S daty se manipuluje přes řetězce. Manipulace s celým souborem najednou. fpassthru(), readfile() načte celý soubor a jeho obsah vypíše na výstup file_get_contents(), file_put_contents() načte/uloží celý soubor do/z řetězce file() načte textový soubor po řádcích do pole verze 1.1 2008-2009, Martin Kruliš 2

Práce se souborovým systémem PHP API je založeno na standardu POSIX. Na neposixových systémech (Windows) nemusí vše fungovat. Vytváření, mazání a přejmenovávání souborů a adresářů. touch() nastaví souboru akt. čas (pokud neexistuje, vytvoří jej) tmpfile() vytvoří dočasný soubor rename() přejmenování/přesunutí souboru/adresáře unlink() zrušení hardlinku (smazání souboru) mkdir(), rmdir() vytvoření zrušení adresáře Synchronizace. Některé operace jsou na unixu atomické (append, mkdir, ). Existuje advisory zamykání souborů (flock()). Zamykání je vázáno na procesy vícevláknový server nemusí zaručovat synchronizaci s ostatními PHP skripty. verze 1.1 2008-2009, Martin Kruliš 3

Vlastnosti a přístupová práva Soubor má řadu dalších vlastností (typ, velikost, časy ). Některé lze číst přímo: filesize(), filetype(), filectime() Nebo je možné přečíst všechny najednou. stat(), lstat(), fstat() Práva na souborech jsou definována dle standardu POSIX. Rozlišujeme čtení, zápis a spouštění. Velké množství testovacích funkcí. is_file(), is_readable(), is_writeable(), is_dir() Nastavují se stejně jako v unixových systémech. chmod() nastaví práva na souboru chown(), chgrp() nastaví vlastníka resp. skupinu verze 1.1 2008-2009, Martin Kruliš 4

Adresáře a cesty Procházení adresářů. Iterativní opendir(), readdir(), rewinddir(), closedir() scandir() vrací pole s obsahem adresáře dir() otevře objekt reprezentující adresář Vyhledávání cest. glob() vrací seznam cest, které odpovídají danému vzoru Parsování a upravování cest. dirname(), basename() vrací adresář resp. název souboru pathinfo() vrací pole s adresářem, názvem souboru realpath() převede cestu se symbolickými jmény na absolutní cestu (případně komprimuje /./ a /../) verze 1.1 2008-2009, Martin Kruliš 5

Zpracování uploadovaných souborů Protokol HTTP umožňuje také upload souborů na server. Viz <input type="file"... />. Uploadovaný soubor Je uložen do dočasného adresáře pod vygenerovaným jménem. Informace o souboru jsou uloženy ve $_FILES['name'], kde name je hodnota vyplněná do stejnojmenného atributu tagu input. Záznamem je pole s následujícími položkami: 'name' původní jméno souboru (na klientovi) 'type' MIME typ 'size' velikost uploadovaného souboru v bytech 'tmp_name' cesta k souboru v dočasném úložišti 'error' chybový kód (UPLOAD_ERR_OK, pokud je upload ok ) verze 1.1 2008-2009, Martin Kruliš 6

Zpracování uploadovaných souborů Existence dočasného souboru je garantována pouze po dobu běhu PHP skriptu. Soubor můžeme číst, nebo jej někam přesunout. is_uploaded_file() ověří, že se jedná o uploadovaný soubor move_uploaded_file() bezpečně přesune soubor na jiné (trvalé) místo Maximální velikost uploadovaných souborů ovlivňuje konfigurace v php.ini. upload_max_filesize max. velikost souboru post_max_size max. velikost zasílaných dat metodou POST max_execution_time, max_input_time Příklad 1 verze 1.1 2008-2009, Martin Kruliš 7

Formátované soubory CSV soubory Textový soubor uchovávající tabulku hodnot oddělených středníky. Otevře se pomocí fopen() a následně se s ním pracuje pomocí speciálních funkcí. fgetcsv() načte a naparsuje jeden řádek z CSV souboru fputcsv() zapíše korektně formátovaný řádek do CSV INI soubory Konfigurační soubory s položkami "název = hodnota". parse_ini_file() dostane název souboru a naparsuje jej do asociativního pole Umí položky rozdělit i podle sekcí. Příklad 2 verze 1.1 2008-2009, Martin Kruliš 8

Komprese ZIP soubory. Existuje knihovna php_zip (nyní udržovaná v PECL balíčcích). Poměrně složitá (ZIP balíčky mohou obsahovat více souborů). Knihovna Zlib komprese GZipem (soubory *.gz). Stejné API, jako standardní funkce pro práci se soubory. gzopen(), gzread(), gzwrite(), gzclose(), Knihovna BZip (soubory *.bz2). Podobné rozhraní, jako Zlib bzopen(), Existují i jiné knihovny. RAR TAR v základní nabídce chybí. Příklad 3 verze 1.1 2008-2009, Martin Kruliš 9

XML Some people, when confronted with a problem, think "I know, I'll use XML." Now they have two problems. P. J. Eby

Úvod do XML extensible Markup Language. Textový značkovací jazyk. Vychází z jazyka SGML (který byl použit např. pro HTML). Značky (tzv. tagy) mají tvar: <tag>obsah</tag> Tvoří "závorky", které ohraničují jeden XML element. Přidávají metainformaci k obsahu. XML elementy mohou mít doplňující atributy. <tag atribut="hodnota">...</tag> Elementy se mohou libovolně vnořovat. Každý XML dokument má právě jeden kořenový element. Všechny ostatní XML elementy jsou do něho vnořené. Navíc může XML dokument obsahovat prolog. Prolog definuje verzi použitého XML a znakovou sadu dokumentu. verze 1.1 2008-2009, Martin Kruliš 11

Úvod do XML příklad dokumentu <?xml version="1.0" encoding="windows-1250"?> <adresář> <osoba id="osoba1" typ="kamarád"> <příjmení>novák</příjmení> <jméno>jan</jméno> <email>jn@seznam.cz</email> <telefon>607987654</telefon> </osoba> <osoba id="osoba2"> <příjmení>procházka</příjmení> <jméno>karel</jméno> <email>karel@post.cz</email> </osoba> </adresář> verze 1.1 2008-2009, Martin Kruliš 12

Úvod do XML terminologie Správně definovaný dokument (well-formed). Dodržuje pravidla syntaxe XML (zápis a párování tagů, atributy ). Navíc může dokument obsahovat odkaz na schéma, které definuje jeho sémantiku. Názvy elementů, atributů, povolený obsah Schéma může být zapsáno v různých jazycích. DTD, XML Schema, Relax NG, Schematron, Validní (správně strukturovaný) dokument. Vždy bereme validitu vzhledem k nějakému schématu. Schéma popisuje gramatiku dokumentu. Dokument je validní, pokud vyhovuje dané gramatice. Procesu kontroly validity se říká validace. Validaci provádí automaticky nástroje zpracovávající XML (parsery). verze 1.1 2008-2009, Martin Kruliš 13

Úvod do XML parsery Parsování XML dokumentu. Načítání dat z XML. Nástroje, které toto zařizují se nazývají parsery. SAX (Simple API for XML). Prochází dokument od začátku do konce a ohlašuje "události". Otevření/zavření elementu, nalezení atributu, textu, DOM (Document Object Model). Načte celý dokument do předem známého objektového modelu. Díky vlastnostem XML je modelem strom. API je zapouzdřeno přímo do metod uzlů. Při načítání dokumentu se zpravidla provede i validace. DOM má širší využití (dá se v paměti modifikovat, uložit, ). Ale musí se celý dokument do paměti vejít. verze 1.1 2008-2009, Martin Kruliš 14

Úvod do XML XPath, XSLT XPath je dotazovací jazyk nad XML. Syntaxe přebírá ideu adresářové hierarchie (elementy ~ adresáře). Různé typy dotazů Vrací boolean, číslo, řetězec nebo množinu uzlů DOM stromu Má poměrně silné prostředky (aritmetiku, boolovské podmínky ) XSLT je transformační jazyk. Popisuje způsob transformace jednoho XML dokumentu na jiný. Vstupem je XML dokument. Výstupem může být opět XML, plain-text, nebo HTML. K vyhledávání částí transformovaného XML používá XPath. K vyhledaným vzorům definuje pravidla, na co se mají transformovat. Je turingovsky úplný. verze 1.1 2008-2009, Martin Kruliš 15

XML v PHP Prostředky pro práci s XML v PHP. SAX parser DOM parser a třídy elementů v DOM stromě Vyhledávání pomocí XPath (nad DOM stromem) Procesor pro XSLT transformace Simple XML API zjednodušený DOM model Většina API je zapouzdřena do tříd. DOM je postaven na objektech. Simple XML využívá speciálních vlastností tříd v PHP. verze 1.1 2008-2009, Martin Kruliš 16

SAX Simple API for XML Událostmi řízené zpracování objektu. Prochází dokument od začátku do konce (nelze skákat, nebo se vracet). Hlásí důležité události. začátek elementu konec elementu textový obsah Události zpracovávají obslužné (callback) funkce. Parsování celého dokumentu se spustí jedním voláním. Popis API naleznete v dokumentaci po záložkou: Function reference > XML Parser Functions Příklad 4 verze 1.1 2008-2009, Martin Kruliš 17

DOM Document Object Model Sada tříd, které objektově reprezentují XML dokument. Dostupné od PHP 5 bez přídavných knihoven. Jednotlivé třídy implementují DOM 3 model popsaný W3C. DOMDocument zapouzdřuje celý XML dokument DOMElement třída pro jednotlivé XML elementy DOMAttr třída pro jednotlivé atributy XML elementů DOMNode obecný uzel DOM stromu Od něj jsou odvozeny ostatní třídy uzlů. DOMCharacterData textový uzel Pozor na dokumentaci. Příklad 5 Function Reference > DOM Functions výše popsané rozhraní Function Reference > DOM XML Functions staré API z PHP 4 verze 1.1 2008-2009, Martin Kruliš 18

DOM validace a XPath Validace dokumentu Třída XMLDocument obsahuje řadu metod pro validaci. validate() provede validaci proti vnitřnímu DTD schemavalidate() provede validaci proti zvolenému schématu Validace probíhá automaticky při načítání dokumentu, pokud je nastaven příznak validateonparse. Vyhledávání třída DOMXPath Pracuje vždy nad instancí DOMDocument. Příkazy se vykonávají metodami query() a evaluate(). Výsledkem operace je základní typ (boolean, integer nebo string) nebo objekt DOMNodeList. Příklad 6 verze 1.1 2008-2009, Martin Kruliš 19

XSLT transformace Transformace provádí třída XSLTProcessor. K dispozici od PHP 5 Ke své činnosti využívá knihovnu libxslt Transformace jsou prováděny nad DOM stromem. Procesor očekává instanci DOMDocument. Výsledek může být uložen do: Nového DOMDocument objektu Řetězce Souboru Pozor na dokumentaci. Function Reference > XSL Functions API popsané výše Function Reference > XSLT Functions starší API Příklad 7 verze 1.1 2008-2009, Martin Kruliš 20

Simple XML Podobný DOMu Načítá celý dokument do objektové struktury. Všechny uzly jsou objekty třídy SimpleXMLElement. Přístup ke XML elementům zprostředkovává přes iterátory tříd a přetěžováním členských proměnných. Strukturu je možné i modifikovat a následně uložit. Nabízí také pokročilejší funkce. Integrované vyhledávání pomocí XPath Převod z/do DOM Dokumentace: Function Reference > SimpleXML Functions Příklad 8 verze 1.1 2008-2009, Martin Kruliš 21

Použití XML v PHP Ukládání dat mimo DB. XML nabízí lepší vlastnosti, než plain-textové soubory. Výměna dat mezi PHP aplikacemi (např. přes HTTP). Generování HTML dokumentů z XML dat. Ručně, nebo pomocí XSLT. Použití v kombinaci s technologií AJAX. Zpracování dotazů a posílání odpovědí. Sémantický web Web services (SOAP, WSDL, UDDI). Export dat v univerzálním formátu. verze 1.1 2008-2009, Martin Kruliš 22