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



Podobné dokumenty
Základní stavební prvky algoritmu

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Algoritmizace a programování

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 13 VY 32 INOVACE

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice,Benešovo náměstí 1, příspěvková organizace

Praktické úlohy- zaměření specializace

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Operace nad celými tabulkami

Algoritmizace a programování

Podrobný postup pro vygenerování a zaslání Žádosti o podporu a příloh OPR přes Portál farmáře

téma: Formuláře v MS Access

Záloha a obnovení Uživatelská příručka

Vytvoření nebo odstranění makra Excel

KÓDOVÝ ZÁMEK 1105/2 A 1156/10

Tekla Structures Multi-user Mode

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

1 Seznámení s Word 2010, karty, nejčastější činnosti. 2 Tvorba dokumentu

BRICSCAD V16. Modelování strojírenských sestav

Server. Software serveru. Služby serveru


Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Manuál Kentico CMSDesk pro KDU-ČSL

NÁVOD K HODINKÁM S KAMEROU 1. Úvod Dostává se Vám do rukou kamera s mikrofonem, záznamem obrazu a zvuku skrytá v náramkových hodinkách.

Podrobný postup pro doplnění Žádosti o dotaci prostřednictvím Portálu Farmáře. 1. kolo příjmu žádostí Programu rozvoje venkova ( )

DATABÁZE DŮLEŽITÉ: Před načtením nové databáze do vaší databáze si prosím přečtěte následující informace, které vám umožní:

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Zálohování a obnova Uživatelská příručka

Databáze Caché CSP Custom Tags

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Aplikace počítačů v provozu vozidel 9

5. Ř etězce (třída String)

Sbírka úloh pro elektronickou stavebnici. Stručný popis programovacího jazyka Bascom AVR

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

OBKLADOVÁ FASÁDNÍ DESKA

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6

I. Všeobecná ustanovení

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

Uživatelská dokumentace

Témata pro doktorandské studium

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

Zámkový systém pro trez ory

Návod k používání registračního systému ČSLH

Zadávání tiskových zakázek prostřednictvím JDF a Adobe Acrobat Professional

Čl. I. Vyhláška č. 106/2001 Sb., o hygienických požadavcích na zotavovací akce pro děti, ve znění vyhlášky č. 148/2004 Sb.

Standardní vstupy a výstupy procesu filtry

FOND VYSOČINY NÁZEV GP

Manuál uživatele čipové karty s certifikátem

MSSF Benefit praktický průvodce pro žadatele v rámci Operačního programu Rozvoj lidských zdrojů

Integrovaný Ekonomický Systém Zakázkový list - IES WIN 2006

Aktualizace softwaru Uživatelská příručka

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

awk programovatelný filtr

2008 Nokia. Všechna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky společnosti

PODPORA ČINNOSTI NESTÁTNÍCH NEZISKOVÝCH ORGANIZACÍ PŮSOBÍCÍCH NA ÚZEMÍ MČ PRAHA 7 V OBLASTI SPORTU PRO ROK 2015

VERZE: 01 DATUM: 05/2014

Web n walk NÁVOD PRO UŽIVATELE. Manager

Co najdete v ASPI? (pro uživatele SVI FSE UJEP)

Informační systém pro rezervaci pokojů hotelu SPORT

Umístění zásuvek, vypínačů a světel v koupelně

Generátor sítového provozu

Rozšířená nastavení. Kapitola 4

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Pravidla pro využívání lokální počítačové sítě Slovanského gymnázia v Olomouci. Preambule

Pokyny k instalaci FRIATRACE Verze 5.3

GroupWise 6.5 for Linux

Zvyšování kvality výuky technických oborů

DODATEK Č. 2 KE SMLOUVĚ O DÍLO MKDS STŘÍBRO Č. 20/HIO/2011

Návod pro administraci aplikace EdgeFrame HelpDesk

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Android Elizabeth. Verze: 1.3

Zabezpečení. Uživatelská příručka

Úprava fotografií hledání detailu, zvětšování (pracovní list)

Úvodní příručka k aplikaci Novell Messenger Mobile

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Seznámení žáků s pojmem makra, možnosti využití, praktické vytvoření makra.

Informační a komunikační technologie. 1.4 Data, informace, komprimace

Domovní řád. Datum platnosti: Datum účinnosti: Změna:

Algoritmus (nebo dřívějším pravopisem algorithmus)

rozlišení obrazovky 1024 x 768 pixelů operační systém Windows 2000, Windows XP, Windows Vista 1 volný sériový port (volitelný) přístup na internet

Postup šetření pro rok Ministerstvo pro místní rozvoj Odbor veřejného investování

Přehled úprav aplikace e-spis verze 2.24

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Nástroje produktivity

TECHNICKÁ DOKUMENTACE NA PC

ZADÁVACÍ DOKUMENTACE. Pořízení a provoz konsolidované IT infrastruktury

Studie proveditelnosti. Marketingová analýza trhu

DPC-D218ID. Dveřní stanice pro 2D systém videovrátných. Uživatelský manuál

6. Ventily Cestné ventily Značení ventilů Třícestné ventily. Přehled ventilů podle funkce:

Dokumentaci k semestrální úloze z předmětu Internet a WWW (X36WWW)

4 Část II Základy práce v systému. 6 Část III Úvodní obrazovka. 8 Část IV Práce s přehledy. 13 Část V Kontakty. 19 Část VI Operativa

OHNĚ, OHNIŠTĚ, TÁBOŘIŠTĚ OHNĚ

Úvod Petr Kropík viz:

Transkript:

Návrh a tvorba WWW stránek 1/38 PHP PHP Hypertext Preprocessor interpret stránek na serveru běží na serveru příkazy PHP nejprve provede a vloží do XHTML dokumentu, následně posílá klientovi příkazy PHP lze vkládat přímo do XHTML

Návrh a tvorba WWW stránek 2/38 Server x klient Výhody: spolupráce se serverovými aplikacemi (databáze, SMTP, FTP) nenáročnost na HW a SW klienta výstupem je čisté (X)HTML menší objem přenesených dat přenáší se pouze výsledek skriptů ochrana zdrojových kódů Nevýhody: zátěž serveru nemožnost interakce s objekty na stránce (reakce na klávesy, myš)

Návrh a tvorba WWW stránek 3/38 Co je potřeba? 1) možnost publikování na webovém serveru s podporou PHP 2) totéž pro ladění skriptů na domácím PC Oba servery musí mít nainstalovány tyto součásti: HTTP server Apache, IIS, interpret PHP vhodné je pracovat s databází, nejčastěji MySQL Tyto programy musí být nainstalovány a nakonfigurovány pro vzájemnou spolupráci

Návrh a tvorba WWW stránek 4/38 Možnosti instalace 1) jednotlivé součásti stáhnout samostatně a ručně nakonfigurovat 2) instalace balíčku, který obsahuje všechny potřebné součásti (Apache, PHP, MySQL) ad 1) přehled v nastavení aktuální verze součástí možnost kombinace součástí ad 2) jednoduchá instalace snadná konfigurace Xampp, Wampp2, PhpTriad, PhpEasy, PhpHomeEdition

Návrh a tvorba WWW stránek 5/38 Nejsnažší domácí instalace balíčky Xampp, PhpEasy, obsahuje osvědčenou kombinaci Apache, MySQL, PHP součásti jsou vzájemně nakonfigurovány alternativou mohou být aplikace Wammp2, která obsahuje stejné součásti, navíc není nutné ji instalovat

Návrh a tvorba WWW stránek 6/38 Alternativní instalace instalace jednotlivých součástí samostatně + jejich konfigurace většinou v případě jiné kombinace na "ostrém" serveru alternativy k Apachi Microsoft IIS, Personal Web Server alternativy k MySQL PostgreSQL, Access, Oracle

Návrh a tvorba WWW stránek 7/38 start/restart serveru Práce se serverem Apache na adrese http://localhost (http://127.0.0.1) se potom nachází kořenový adresář webového serveru všechny php skripty musí být uloženy v kořenovém adresáři implicitně je kořenovým adresářem /htdocs Konfigurace Apache konfigurační soubor httpd.conf v adresáři Apache/conf úpravy se provádí přidávání a odebíráním komentářů vybraných direktiv např. změna kořenového adresáře, složka instalace, výchozí soubor DocumentRoot "C:/skripty" ServerRoot "C:/Apache"

Návrh a tvorba WWW stránek 8/38 Vyhodnocování PHP ke skriptům je potřeba přistupovat přes webový server skripty NELZE spouštět přímo z lokálního disku Konfigurace PHP v souboru php.ini (Apache/php, Windows/System32, ap.) formou komentářů, především přidávání knihoven register_globals on (jednodušší), off (bezpečnější) práce s formulářovými proměnnými

Návrh a tvorba WWW stránek 9/38 Vkládání PHP do (X)HTML PHP lze vkládat přímo do XHTML, pro interpret je potřeba obě části oddělit... kód XHTML...... kód XHTML... <?php /* začátek PHP */ <?... kód PHP...... kód PHP...?> /* konec PHP */?>... kód XHTML...... kód XHTML... zkrácená verze není kompatibilní s XML použití zkrácené verze lze zakázat v php.ini (short_open_tag = On) třetí možnost <script type="text/php" language="php">

Návrh a tvorba WWW stránek 10/38 Kombinace XHTML a PHP PHP generuje kód XHTML kód PHP lze vložit na libovolné místo v dokumentu kód PHP lze kdykoli ukončit a přejít na XHTML (a naopak) <body> <?php echo "Vítejte na stránce";?> <h2>první dokument v PHP</h2> <? echo "<p><i>lze použít i značky XHTML</i></p>";?> </body> funkce echo vypisuje zadaný text na standardní výstup dokument obsahující PHP musí mít příponu.php (php5, phtml, konfigurace Apache) dokument musí být zobrazen přes webový server, ne z disku zobrazte si zdrojový kód

Návrh a tvorba WWW stránek 11/38 Základní syntaxe příkazy jsou odděleny středníkem oddělovačem jsou "bílé znaky" - přehlednost kódu strukturovaný jazyk - příkazy jsou členěny do bloků { příkazy } <? function fce() { if (podminka) { příkaz1; příkaz2; } }?> formátování příkazů - přehlednost

Návrh a tvorba WWW stránek 12/38 Komentáře víceřádkový komentář /* toto je komentář */ jednořádkový komentář // komentář do konce řádku # jednořádkový komentář komentáře lze vnořovat, je potřeba ale použít různých druhů <?... /* první komentář /* pokus o vnořený komentář */ text vnějšího komentáře - CHYBA, komentář již skončil */?>

Návrh a tvorba WWW stránek 13/38 Proměnné v PHP jsou proměnné uvozeny znakem $, tj. $a je "proměnná a" identifikátor proměnné musí začínat písmenem nebo podtržítkem, dále "cokoli" - raději bez diakritiky proměnné není třeba deklarovat či inicializovat <??> $a = 100; $b = $a; $c = $a + $b; není třeba se starat o datové typy - automatická konverze <? $a = 10; $a = 3.14159; $a = "text";?>

Návrh a tvorba WWW stránek 14/38 Pole k jednotlivým položkám pole se přistupuje přes indexy <? $a[0]=11; $a[1]=5; $a[2]=3; $a[3]=8;?> s proměnnou typu pole lze pracovat jako s celkem <? $b = $a;?> přístup k proměnným <? echo $a[3];?> // vypíše se 8 naplnění pole - každá položka zvlášť vícerozměrná pole - najednou <? $x = Array(1.14,2.56,7.90);?> <? $tabulka[1][1] = 5;$tabulka[1][2] = 8; $tabulka[2][1] = 3;$tabulka[2][2] = 1;?>

Návrh a tvorba WWW stránek 14,5/38 <? $dny["mon"]="pondělí"; $dny["tue"]="úterý"; $dny["wed"]="středa"; $dny["thu"]="čtvrtek"; $dny["fri"]="pátek"; $dny["sat"]="sobota"; $dny["sun"]="neděle"; Asociativní pole?> echo $dny[date("d")]." ".Date("j").". ".Date("n").". ".Date("Y");

Návrh a tvorba WWW stránek 15/38 Řetězce uvádějí se v uvozovkách (nebo apostrofech) <? $retezec = "Toto je retezec";?> výpis řetězce <? echo $retezec?> // vypise se Toto je retezec escape sekvence - zápis speciálních znaků -!! pouze v řetězcích v uvozovkách \n ukončení řádku \t tabulátor <? $zvire = "kočka"; echo "Chované zvíře je $zvire"; // kočka echo "\$zvire je $zvire"; // $zvire je kočka! echo $zvire je $zvire ; // $zvire je $zvire

Návrh a tvorba WWW stránek 16/38 konkatenace řetězců Řetězce $a = "10"; $b = 15; $c = $a + $b; // $c bude 25 (automaticka konverze) $d = $a. $b; // $d bude 1015

Návrh a tvorba WWW stránek 17/38 Matematické operátory + - * / - sčítání, odčítání, násobení, reálné dělení % - modulo složené operátory +=, -= atd. <? $a+=5;?> Unární operátory pro inkrementaci a dekrementaci jeden z nejčastěji používaných příkazů, proto speciální operátory <? $a = $a+1; $a++;?> <? $a = $a-1; $a--;?> lze použít dvě varianty zápisu - $a++ a ++$a <? $a = 10;?> $b = $a++; // $a je 11, $b je 10 $c = ++$a; // $a je 12, $c je 12 $c = --$a; // $a je 11, $c je 11 $b = $a--; // $a je 10, $b je 11

Návrh a tvorba WWW stránek 18/38 Operátory porovnávání většinou v podmínkách a cyklech, výsledkem je true/false == operátor rovnosti!=, <> operátor nerovnosti <, >, <=, >= porovnání velikosti === proměnné mají stejnou hodnotu i typ!== proměnné mají různou hodnotu nebo typ <? $a = 7; $b = 7.00; $c = $a==$b; // true, mají stejnou hodnotu $c = $a===$b // false, různý typ?>

Návrh a tvorba WWW stránek 19/38 logické AND (&&) logické OR ( ) Konjunkce a disjunkce <? $podm = (($b>0) AND ($b<10)); // ($b>0) && ($b<10) $podm = (($b<0) OR ($b>10)); // ($b<0) ($b>10)?> rozdíl v prioritě operátorů - AND má nižší prioritu než && zkrácené vyhodnocování logických výrazů zleva doprava operátor XOR - exklusivní disjunkce - právě jedna <? $a xor $b?> // právě jedna proměnná je pravdivá podmíněný operátor podmínka? výraz1 : výraz2

Návrh a tvorba WWW stránek 20/38 Funkce za identifikátorem funkce vždy následují závorky výjimkou je funkce (konstrukt) echo - lze použít se závorkami i bez <? echo "Text"; // ekvivalentní zápis echo ("Text");?> funkce může a nemusí vracet výsledek, pokud výsledek vrací, přiřadí se do proměnné <? $a = abs(-10);?> mimo standardních funkci PHP lze deklarovat funkce vlastní použitím klíčového slova function function Jmeno (seznam_parametru) { příkazy; [return hodnota;] } // pokud funkce vrací hodnotu

Návrh a tvorba WWW stránek 21/38 příklad jednoduché funkce <? function Uvitani() { echo "<h2>vítejte</h2>"; }?> uvnitř funkce lze volat další funkce, např. standardní funkci Date <? function Uvitani() { echo "Vítejte<br />"; echo "Dnes je ".date("j.n.y G").":".date("i"); }?> proměnné deklarované uvnitř funkce jsou lokální, předávání hodnot odkazem zajistí & <? function Nastav(&$x,$y) { $x=0;$y=1; } $a=100;$b=200;nastav($a,$b);echo $a,$b ; // vytiskne 0,200?>

Návrh a tvorba WWW stránek 22/38 Řízení běhu programu k řízení programu slouží mimo jednoduchých příkazů a volání funkcí především podmíněný příkaz a příkazy cyklu Podmíněný příkaz if jednoduchá podmínka <? if (podmínka) { blok příkazů }?> úplná podmínka <? if (podmínka) { blok příkazů } else { blok příkazů }?> rozšíření elseif <? if (podmínka1) { blok příkazů } elseif (podmínka2) { blok příkazů } else { blok příkazů }?> v případě vícenásobného použití elseif je vhodné využít switch Pozor na operátor porovnání v podmínce (==)!

Návrh a tvorba WWW stránek 23/38 Rozcestník switch slouží k rozlišení více stavů podmínky <? switch ($mesic) { /* podminka musi byt v () */ case 2: $dny=28;break; case 4: case 6: case 9: case 11: $dny=30;break; default: $dny=31; }?> prochází všechny větve => je potřeba v každé větvi break;

Návrh a tvorba WWW stránek 24/38 provádí zadaný počet opakování Cyklus for <? for ($i=1;$i<=6;$i++) echo "<h$i>nadpis $i. úrovně</h$i>";?> problém s nekonečným cyklem na serveru je v PHP vyřešen nastavením max. doby provádění cyklu, např. na 30 s Cyklus foreach pro pole <? $x = Array(1,2,3,4,5,6,7,8,9,10);?> foreach ($x as $y) echo "$y "; // výpis prvků break příkaz pro ukončení cyklu continue ukončení aktuálního průchodu cyklem exit ukončení zpracovávání skriptu

Návrh a tvorba WWW stránek 25/38 Cyklus while v případě, že není předem znám počet průchodů, ale je známa podmínka ukončení cyklu libovolný cyklus for lze převést na while <? $i = 1; while ($i<=10) { }?> echo $i; $i++; Cyklus do-while cyklus s podmínkou na konci, provede se vždy alespoň jednou <? $i=1; do { echo $i;$i++; } while ($i <= 10);?>

Návrh a tvorba WWW stránek 26/38 Vkládání souborů vkládání externích souborů do skriptů záhlaví, zápatí, příp. často používané části kódu Require a include zadaný soubor vloží do dokumentu v místě uvedení příkazu syntaxe: require "soubor.php"; // include "soubor.php" require ("soubor.php"); // include ("soubor.php") pokud zadaný soubor existuje, je vložen do dokumentu pokud zadaný soubor neexistuje require skončí s fatální chybou include skončí s varováním (@) před vložením souboru je opuštěn režim zpracování PHP

Návrh a tvorba WWW stránek 27/38 Require a include - použití <? include "zahlavi.php"; zahlavi.php echo "Toto je obsah stránky"; include "zapati.php";?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>xhtml</title> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> </head><body> zapati.php <p> autor <? echo date("j."."m."."y, ". "H:i:s");?> </p></body></html>

Návrh a tvorba WWW stránek 28/38 Readfile otevře zadaný soubor a jeho obsah vypíše na standardní výstup obsah souboru neprochází přes interpret PHP, tzn. že může obsahovat značky XHTML, které interpretuje klient, ale nemůže obsahovat příkazy PHP <? readfile ("soubor.txt");?>

Návrh a tvorba WWW stránek 29/38 Zpracování formulářů jedno z nejčastějších využití PHP jednoduchá spolupráce s formuláři v XHTML obslužný skript je nastaven v atributu action značky <form> <form name="f1" method="post" action="obsluha.php"> při zpracování formulářových polí jsou tato přístupná v proměnných stejného jména jako ve formuláři bezpečnost register_globals předávání proměnných <? echo $jmeno; // funguje pro register_globals=on echo $_POST["jmeno"]; // pro register_globals=off echo $_GET["jmeno"]; // ---- ---- echo $_REQUEST["heslo"]; // univerzální?> často se využívá v kombinaci s funkcí mail()

Návrh a tvorba WWW stránek 30/38 Předávání proměnných automaticky ve stejnojmenných proměnných lépe přes asociativní pole $_POST, $_GET viz příklad obsluha.php často se využívá možnost zpracování formuláře ve stejném souboru - snadné úpravy - všechno na jednom místě poprvé je potřeba zobrazit formulář, po odeslání už ne viz příklad fotky

Návrh a tvorba WWW stránek 31/38 Nahrávání souborů na server pomocí formulářového pole typu file podmínky pro formulář: - kvůli bezpečnosti musí být použita metoda POST - atribut enctype="multipart/form-data"; soubor je uložen do dočasného adresáře (nastaveno v php.ini) odkud je potřeba jej zkopírovat do cílové složky při zpracování je k dispozici jméno souboru, velikost a typ (v proměnných $_FILES[ file ][ size name tmp_name type ]) v PHP jsou nastaveny bezpečnostní hodnoty pro velikost souboru viz příklad fotky

Návrh a tvorba WWW stránek 32/38 Práce se soubory skript nesmí mít přístup ke všem souborům na serveru záleží na právech procesu webového serveru soubory, ke kterým má přistupovat skript, musí mít patřičná práva přístupová práva, bezpečnost, DocumentRoot práce s celými soubory kopírování, mazání, změna práv atd. práce s obsahem souborů čtení a zápis dat do souboru

Návrh a tvorba WWW stránek 33/38 Manipulace s celými soubory file_exists() boolovská funkce, zda soubor existuje <? if (!file_exists("jokes.php")) echo "Chyba! Soubor neexistuje!";?> is_dir() totéž pro adresáře is_executable() true pokud je soubor sppustitelný is_file() zda se jedná o soubor (případně is_link odkaz) is_readable() true pokud je možné ze souboru číst (is_writable) is_uploaded_file() true pokud jméno odpovídá souboru nahranému na server metodou POST copy($soubor, "cesta kam"), Rename(), Unlink()

Návrh a tvorba WWW stránek 34/38 Manipulace s obsahem souborů - otevření čtení z zápis do souboru na libovolném místě fopen() pro úpravy je soubor potřeba nejprve otevřít <? $fp1 = fopen($jmeno,režim);?> absolutní i relativní cesta, i mimo webserver (pro čtení) režim přístup k souboru r čtení (pokud neexistuje, chyba) r+ čtení i zápis (např. zápis od začátku souboru) w zápis (existuje => obsah smazán, jinak vytvořen) w+ zápis a současné čtení (existuje => smazán) a zápis na konec souboru (neexistuje => vytvoří se) a+ zápis na konec souboru + čtení

Návrh a tvorba WWW stránek 35/38 Manipulace s obsahem souborů - čtení třetím parametrem fopen() může být boolovská hodnota, která určuje, zda se má soubor hledat nejen v aktuálním adresáři, ale i v adresáři daném proměnnou include_path v konfiguračním souboru fopen vrací ukazatel na soubor, je dobré jej uložit pro další použití čtení ze souboru fread(), fgets(), fgetc() fread() čte po blocích <? $chunk = fread($fp1,1024); > fgets() čte po řádcích z textového souboru (omezení řádku) <? $radek = fgets($fp22,4096);?> fgetc() načte znak automaticky je přesouván ukazatel pozice v souboru, pomocí funkce feof() lze testovat konec souboru

Návrh a tvorba WWW stránek 36/38 Manipulace s obsahem souborů - čtení Příklad: Vyhledejte v zadaném souboru řádky obsahující daný text. <? $soubor = "soubor.txt"; $grep = "php"; if ($fp=fopen($soubor,"r")) while (!feof($fp)) { $radek = fgets($fp,filesize($soubor)); if (strpos($radek,$grep)!==false) echo $radek."<br />"; };?>

Návrh a tvorba WWW stránek 37/38 Manipulace s obsahem souborů - zápis fwrite() zapíše do souboruřetězec na pozici ukazatele <? fwrite(soubor,řetězec[,délka])?> soubor musí být otevřen pro zápis lze použít funkci fputs(), která má ale stejný význam (alias) funkce pro manipulaci s ukazatelem: - rewind() nastaví ukazatel na začátek souboru - ftell() vrací aktuální pozici ukazatele v souboru - fseek() nastaví ukazatel na zadanou hodnotu Všechny tyto funkce očekávají jako první parametr odkaz na soubor, fseek() navíc očekává druhý parametr s určením pozice.

Návrh a tvorba WWW stránek 38/38 Manipulace s obsahem souborů - zápis <? $fp = fopen("soubor.dat","r"); fseek($fp,filesize("soubor.dat")); $pozice = ftell($fp); rewind($fp); fseek($fp,$pozice);?> Uzavření souboru vhodné u souborů, do kterých bylo zapisováno dojde k vyprázdnění vyrovnávací paměti a uložení změn v souboru <? fclose($fp);?>