cvs: phpdoc-sk /chapters tutorial.xml
| From: | Joseph Drake | Date: | Fri, 13 Aug 2004 17:01:46 +0000 |
| Subject: | cvs: phpdoc-sk /chapters tutorial.xml | ||
| Groups: | php.doc.sk | ||
| Request: | Send a blank email to doc-sk+get-309@lists.php.net to get a copy of this message | ||
joseph Fri Aug 13 13:01:46 2004 EDT
Added files:
/phpdoc-sk/chapters tutorial.xml
Log:
simple tutorial
http://cvs.php.net/co.php/phpdoc-sk/chapters/tutorial.xml?r=1.1&p=1 Index: phpdoc-sk/chapters/tutorial.xml +++ phpdoc-sk/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.34 Maintainer: joseph Status: ready --> <chapter id="tutorial"> <title>Jednoduchý tutoriál</title> <para> Tu by sme vám chceli ukáza» úplné základy PHP v skratke, jednoduchý tutoriál. Tento text sa zaoberá iba dynamickou tvorbou webovskej stránky s PHP, i keï PHP nie je iba schopné vytvára» webovské stránky. Pozri sekciu s názvom <link linkend="intro-whatcando">Èo doká¾e PHP</link> pre viac informácii. </para> <para> Webové stránky pou¾ívajúce PHP sa spracovávajú práve tak ako be¾né HTML stránky a mô¾ete ich vytvára» a editova» rovnakým spôsobom akým normálne vytvárate be¾né HTML stránky. </para> <sect1 id="tutorial.requirements"> <title>Èo potrebujem?</title> <para> V tomto tutoriále predpokladáme, ¾e vá¹ server má aktivovanú podporu pre PHP a ¾e v¹etky súbory konèiace na <filename>.php</filename> sa spracovávané pomocou PHP. Na väè¹ine serverov je toto východzia prípone pre PHP súbory, ale pre istotu sa spýtajte vá¹ho server administrátora. Ak vá¹ server podporuje PHP, potom nemusíte urobi» niè. Len vytvorte va¹e <filename>.php</filename> súbory, vlo¾te ich do vá¹ho web adresára a server ich pre vás automaticky spracuje. Nie je nutné èokoµvek kompilova» ani nemusíte in¹talova» extra nástroje. Pod týmito PHP súbormi si predstavte jednoduché HTML súbory s celou novou rodinou magických tagov, ktoré vám umo¾òujú robi» v¹etky druhy vecí. Väè¹ina web hostov ponúka PHP podporu, ale ak vá¹ host nie, uvá¾te èítanie sekcie <ulink url="&url.php.links;">PHP Liniek</ulink> pre zdroje ako vyhµada» web hosty pou¾ívajúce PHP. </para> <para> Povedzme, ¾e chcete u¹etri» cennú ¹írku pásma a vyvíja» lokálne. V tomto prípade budete chcie» nain¹talova» webovský server, ako je <link linkend="install.apache">Apache</link> a, samozrejme, <ulink url="&url.php.downloads;">PHP</ulink>. S najväè¹ou pravdepodobnos»ou budete tie¾ chcie» nain¹talova» databázu, ako je <ulink url="&url.mysql.docs;">MySQL</ulink>. </para> <para> Tieto mô¾ete nain¹talova» buï individuálne alebo si zvoli» jednoduch¹í spôsob. Ná¹ manuál má <link linkend="install">in¹talaèné in¹trukcie pre PHP</link> (predpokladajúci, ¾e u¾ nejaký web server máte nastavený). V prípade, ¾e sami máte problémy s in¹taláciou PHP, navrhovali by sme vám polo¾i» svoje otázky na na¹om <ulink url="&url.php.mailing-lists;">in¹talaènom mailing liste</ulink>. Ak si zvolíte kráèa» po jednoduch¹ej ceste, potom <ulink url="&url.installkits;">lokalizujte predkonfigurovaný balík</ulink> pre vá¹ operaèný systém, ktorý automaticky v¹etko toto nain¹taluje len pomocou pár kliknutí my¹ou. Je jednoduché nastavi» web server s PHP podporou na akomkoµvek operaènom systéme, vrátane MacOSX, Linux a Windows. Na Linuxe, mô¾ete poklada» <ulink url="&url.rpmfind;">rpmfind</ulink> a <ulink url="&url.rpmfind.pbone;">PBone</ulink> za nápomocné pre lokalizáciu RPM-iek. Mô¾ete tie¾ chcie» nav¹tívi» <ulink url="&url.apt-get;">apt-get</ulink> na vyhµadanie balíkov pre Debian. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Va¹a prvá PHP stránka</title> <para> Vytvorte súbor s názvom <filename>hello.php</filename> a vlo¾te ho do root adresára vá¹ho web servera (<varname>DOCUMENT_ROOT</varname>) s následujúcim obsahom: </para> <para> <example> <title>Ná¹ prvý PHP skript: <filename>hello.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Ahoj Svet</p>'; ?> </body> </html> ]]> </programlisting> <simpara> Pou¾ijte vá¹ prehliadaè pre prístup k súboru s URL vá¹ho web servera, konèiac na odkaz súboru "/hello.php". Pri lokálnom vývoji bude táto URL vyzera» asi ako <literal>http://localhost/hello.php</literal> alebo <literal>http://127.0.0.1/hello.php</literal>, ale to závisí od nastavenia web servera. Ak je v¹etko nastavené správne, tak PHP tento súbor spracuje a následujúci výstup bude poslaný vá¹mu prehliadaèu: </simpara> <screen role="html"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> <p>Ahoj Svet</p> </body> </html> ]]> </screen> </example> </para> <para> Tento program je extrémne jednoduchý a vôbec ste nemuseli PHP pou¾i» na vytvorenie stránky ako je táto. V¹etko, èo robí je zobrazenie: <literal>Ahoj Svet</literal> pomocou PHP príkazu <function>echo</function>. V¹imnite si, ¾e súbor <emphasis>nemusí by» spustitelný</emphasis> alebo nejakým spôsobom ¹peciálny. Server zistí, ¾e sa tento súbor musí interpretova» PHP-èkom, preto¾e ste pou¾ili príponu ".php", na ktorú je server nastavený, aby bola predaná PHP-èku. Predstavte si to ako normálny HTML súbor, ktorý má pre vás dostupnú ¹peciálnu sadu tagov, ktoré robia mno¾stvo zaujímavých vecí. </para> <para> Ak ste tento príklad vyskú¹ali a nestalo sa niè, objavilo sa okno pre download alebo vidíte celý súbor ako text, mo¾ností sú také, ¾e server, na ktorom be¾íte nemá povolené PHP alebo nie je vhodne nastavený. Po¾iadajte svojho administrátora, aby vám ho pre vás povolil pomocou kapitoly <link linkend="installation">In¹talácia</link> manuálu. Ak vyvíjate lokálne, tie¾ si preèítajte in¹talaènú kapitolu, aby ste sa uistili, ¾e v¹etko je vhodne nastavené. Uistite sa, ¾e pristupujete k súboru cez http so serverom poskytujúcim výstup. Ak iba zavoláte súbor z vá¹ho súborového systému, potom sa nespracuje PHP-èkom. Ak aj napriek v¹etkému problémy budú pretrváva», neváhajte pou¾i» jednu z mnohých volieb <ulink url="&url.php.support;">PHP podpory</ulink>. </para> <para> Cieµom príkladu je ukáza» ¹peciálny formát PHP tagov. V tomto príklade sme pou¾ili <literal><?php</literal> na oznaèenie zaèiatku PHP tagu. Potom sme vlo¾ili PHP príkaz a ponechali sme PHP mód pridaním koncového tagu, <literal>?></literal>. Mô¾ete takto skáka» do a z PHP módu v HTML súbore kdekoµvek, kde chcete. Viac detailov získate èítaním sekcie manuálu o <link linkend="language.basic-syntax"> základnom PHP syntaxe</link>. </para> <note> <title>Poznámka o Textových Editoroch</title> <para> Existuje mnoho textových editorov a Integrovaných vývojových prostredí (IDE), ktoré mô¾ete pou¾i» na tvorbu, editovanie a mana¾ment PHP súborov. Èiastoèný zoznam týchto nástrojov sa udr¾iava v <ulink url="&url.phpeditorlist;">Zozname PHP Editorov</ulink>. Ak si ¾eláte nejaký editor doporuèi», prosím nav¹tívte horeuvedenú stránku a po¾iadajte správcu stránky o pridanie editoru do zoznamu. Vlastnie editora s výrazòovaním syntaxu mô¾e by» u¾itoèné. </para> </note> <note> <title>Poznámka o Word Processoroch</title> <para> Word processory ako sú StarOffice Writer, Microsoft Word a Abiword nie sú optimálne pre editovanie PHP súborov. Ak si ¾eláte jeden pou¾i» pre tento testovací skript, musíte sa uisti», ¾e ukladáte súbor ako <emphasis>prostý text</emphasis> ináè PHP nebude schopné skript vykona». </para> </note> <note> <title>Poznámka o Windows Notepad</title> <para> Ak svoje PHP skripty pí¹ete pomocou Windows Notepad, budete sa musie» uisti», ¾e sa va¹e súbory ukladajú s príponou .php. (Notepad automaticky súborom pridáva príponu .txt pokiaµ neurobíte jeden z následujúcich krokov, aby ste tomu predi¹li.) Keï ukladáte súbor a ste vyzvaný k poskytnutiu názvu pre súbor, vlo¾te názov súboru do úvodzoviek (napr. "<filename>hello.php</filename>"). Poprípade, mô¾ete kliknú» na 'Text Documents' vo vysúvacom menu v dialógovom okne 'Save' a zmeni» nastavenie na "All Files". Potom mô¾ete zada» svoj názov súboru bez úvodzoviek. </para> </note> <para> Teraz, keï ste úspe¹ne vytvorili fungujúci PHP skript, je èas vytvori» najznámej¹í PHP skript! Zavolajte funkciu <function>phpinfo</function> a uvidíte veµa u¾itoèných informácii o va¹om systéme a nastaveniach akú sú dostupné <link linkend="language.variables.predefined">preddefinované premenné</link>, nahrané PHP moduly a <link linkend="configuration">konfiguraèné</link> nastavenia. Venujte nejaký èas prezretiu týchto dôle¾itých infomácii. </para> <para> <example> <title>Získanie systémových informácii z PHP</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> </sect1> <sect1 id="tutorial.useful"> <title>Nieèo U¾itoèné</title> <para> Urobme teraz nieèo u¾itoènej¹ie. Chceme zisti», aký druh prehliadaèa náv¹tevník pou¾íva. Kvôli tomu skontrolujeme re»azec u¾ívateµského agenta, ktorý prehliadaè posiela ako èas» HTTP po¾iadavky. Táto informácii je ulo¾ená v <link linkend="language.variables">premennej</link>. Premenné v PHP v¾dy zaèínajú znakom dolára. Premenná, o ktorú sa práve teraz zaujímame je <varname>$_SERVER['HTTP_USER_AGENT']</varname>. </para> <note> <para> <link linkend="reserved.variables.server">$_SERVER</link> je ¹peciálna rezervovaná PHP premenná, ktorá obsahuje v¹etky informácie o web serveri. Je známa ako autoglobála (alebo superglobála). Pozrite si odpovedajúcu stránku manuálu o <link linkend="language.variables.superglobals">superglobálach</link> pre viac informácii. Tieto ¹peciálne premenné boli predstavené v PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Pred týmto èasom sme miesto nich pou¾ívali star¹ie <varname>$HTTP_*_VARS</varname> polia, ako je <varname>$HTTP_SERVER_VARS</varname>. I keï odmietané, tieto star¹ie premenné stále existujú. (Tie¾ si pozrite poznámku o <link linkend="tutorial.oldcode">starom kóde</link>.) </para> </note> <para> Na zobrazenie tejto premennej, mô¾ete jednoducho urobi»: </para> <para> <example> <title>Vypísanie premennej (Prvok poµa)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER['HTTP_USER_AGENT']; ?> ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) </screen> </example> </para> <para> Existuje mnoho <link linkend="language.types">typov</link> premenných dostupných v PHP. V hore-uvedenom príklade sme výpisali prvok <link linkend="language.types.array">Poµa</link>. Polia mô¾u by» veµmi u¾itoèné. </para> <para> <varname>$_SERVER</varname> je len jedna premenná, ktorú vám PHP automaticky sprístupní. Zoznam sa dá vidie» v sekcii manuálu <link linkend="reserved.variables">Rezervované Premenné</link> alebo ich kompletný zoznam mô¾ete získa» pozrením sa na výstup funkcie <function>phpinfo</function> pou¾itej v príklade v predo¹lej sekcii. </para> <para> Do vnútra PHP tagu mô¾ete vlo¾i» viaceré PHP príkazy a vytvori» malé bloky kódu, ktoré robia viac ne¾ len jednoduché echo. Napríklad, ak chcete zisti», èi sa pou¾íva Internet Explorer, mô¾ete urobi» toto: </para> <para> <example> <title>Príklad vyu¾ívajúci <link linkend="language.control-structures">riadiace ¹truktúry</link> a <link linkend="language.functions">funkcie</link></title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { echo 'Pouzivate Internet Explorer.<br />'; } ?> ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> <![CDATA[ Pouzivate Internet Explorer.<br /> ]]> </screen> </example> </para> <para> Tu predstavujeme niekoµko nových konceptov. Máme príkaz <link linkend="control-structures.if">if</link>. Ak ste oboznámený so základným syntaxom pou¾ívaným jazykom C, tak by vám toto malo pripada» logické. Inak by ste si pravdepodobne mali vybra» nejakú úvodnú PHP knihu a preèíta» si prvých pár kapitol, alebo si preèíta» èas» manuálu <link linkend="langref">Referencia Jazyka</link>. Zoznam PHP kníh mô¾ete nájs» na <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Druhý koncept, ktorý sme predstavili bolo funkèné volanie <function>strpos</function> <function>strpos</function> je funkcia vstavaná do PHP ktorá vyhµadáva re»azec v re»azci. V tomto prípade hµadáme <literal>'MSIE'</literal> (takzvaná ihla) vo <varname>$_SERVER['HTTP_USER_AGENT']</varname> (takzvaný stoh sena). Ak sa ihla nájde v stohu sena, funkcia vráti pozíciu ihly relatívne k zaèiatku stohu sena. Inak vracia &false;. Ak nevráti &false;, výraz <link linkend="control-structures.if">if</link> vyhodnotí &true; a vykoná sa kód vo vnútri {zátvoriek}. Inak sa kód nespustí. Nebojte sa vytvára» podobné príklady, s <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> a inými funkciami ako sú <function>strtoupper</function> a <function>strlen</function>. Ka¾dá zodpovedajúca stránka manuálu obsahuje tie¾ príklady. Ak si pou¾ítím funkcie nie ste istý, budete si chcie» preèíta» stránku manuálu <link linkend="about.prototypes">ako èíta» definíciu funkcie</link> a sekciu o <link linkend="language.functions">PHP funkciách</link>. </para> <para> Mô¾eme teda urobi» krok ïalej a ukáza» ako mô¾ete skáka» do a z PHP módu, dokonca aj v strede PHP bloku: </para> <para> <example> <title>Mie¹anie módov HTML a PHP</title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { ?> <h3>strpos() musela vratit nie-false</h3> <p>Pouzivate Internet Explorer</p> <?php } else { ?> <h3>strpos() musela vratit false</h3> <p>Nepouzivate Internet Explorer</p> <?php } ?> ]]> </programlisting> <para> Vzorový výstup tohto skritpu mô¾e by»: </para> <screen role="html"> <![CDATA[ <h3>strpos() musela vratit nie-false</h3> <p>Pouzivate Internet Explorer</p> ]]> </screen> </example> </para> <para> Namiesto pou¾itia PHP príkazu echo na vypísanie nieèoho, vyskoèili sme z PHP módu a poslali len priame HTML. Dôle¾itým a mocným bodom na poznamenanie je, ¾e logický prúd skriptu zostáva netaktný. Iba jeden z HTML blokov skonèí poslaním pozorovateµovi závisiac od výsledku <function>strpos</function>. Inými slovami, závisí od toho, èi sa re»azec <literal>MSIE</literal> na¹iel alebo nie. </para> </sect1> <sect1 id="tutorial.forms"> <title>Spracovanie Formulárov</title> <para> Jedna z najmocnej¹ích vlastností PHP je spôsob, akým narába s HTML formulármi. Základný koncept, ktorý je dôle¾itý pochopi» je, ¾e ka¾dý prvok formulára bude automaticky dostupný vá¹mu PHP skritpu. Prosím, preèítajte si sekciu manuálu o <link linkend="language.variables.external">Premenných z vonka PHP</link> pre viac informácii a príkladov ako pou¾íva» formuláre s PHP. Tu je príklad HTML formulára: </para> <para> <example> <title>Jednoduchý HTML formulár</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="post"> <p>Tvoje meno: <input type="text" name="name" /></p> <p>Tvoj vek: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form> ]]> </programlisting> </example> </para> <para> Na tomto formulári nie je niè ¹peciálne. Je to priamy HTML formulár bez ¾iadnych ¹peciálnych tagov akéhokoµvek druhu. Keï u¾ívatel tento formulár vyplní a stlaèí tlaèidlo submit, zavolá sa stránka <filename>action.php</filename>. V tomto súbore by ste napísali nieèo ako toto: </para> <para> <example> <title>Vypísanie dát z ná¹ho formulára</title> <programlisting role="php"> <![CDATA[ Ahoj <?php echo $_POST['name']; ?>. Mas <?php echo $_POST['age']; ?> rokov. ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> <![CDATA[ Ahoj Joe. Ma¹ 22 rokov. ]]> </screen> </example> </para> <para> Malo by by» zrejmé, èo toto robí. Niè na tom nie je. Premenné <varname>$_POST['name']</varname> a <varname>$_POST['age']</varname> sa vám automaticky nastavia PHP-èkom. Pred tým sme pou¾ili autoglobálu <varname>$_SERVER</varname>; hore sme len predstavili autoglobálu <link linkend="reserved.variables.post">$_POST</link>, ktorá obsahuje v¹etky POST dáta. V¹imnite si ako sa <emphasis>metóda</emphasis> ná¹ho formulára POST-ne. Ak by sme pou¾ili metódu <emphasis>GET</emphasis>, potom by informácia formulára ¾ila v autoglobále <link linkend="reserved.variables.get">$_GET</link>. Mô¾ete tie¾ pou¾i» autoglobálu <link linkend="reserved.variables.request">$_REQUEST</link>, ak sa nestaráte o zdroj vami po¾adovaných dát. Obsahuje spojenú informáciu o GET, POST a COOKIE dátach. Tie¾ pozri funkciu <function>import_request_variables</function>. </para> <para> V PHP tie¾ mô¾ete narába» s XForms vstupom, i keï budete na nejaký èas spokojný s dobre podporovanými HTML formulármi. Aj keï práca s XFormami nie je pre zaèiatoèníkov, snáï sa o ne budete zaujíma». Máme tie¾ <link linkend="features.xforms">krátky úvod k spracovaniu dát prijímanými XFormami</link> v na¹ej sekcii vlastností. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>Pou¾ívanie starého kódu s novými verziami PHP</title> <para> Teraz, keï PHP vyrástlo na populárny skriptovací jazyk, vzniklo mnoho verejných prameòom a kni¾níc obsahujúcich kód, ktorý mô¾ete znovu pou¾i». PHP vývojári sa èo najviac pokúsili zachova» spätnú kompatibilitu, tak¾e skript napísaný pre star¹iu verziu bude be¾a» (ideálne) bez zmien v nov¹ej verzii PHP. V praxi to znamená, ¾e nejaké zmeny budú zvyèajne potrebné. </para> <para> Dve z najdôle¾itej¹ích nedávnych zmien, ktoré ovplyvòujú starý kód sú: <itemizedlist> <listitem> <simpara> Odmietanie starých <varname>$HTTP_*_VARS</varname> polí (ktoré sa musia indikova» ako globálne pri pou¾ití vo vnútri funkcie alebo metódy). Následujúce <link linkend="language.variables.superglobals">autoglobálne polia</link> boli predstavené v PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Sú to: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_FILES</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> a <varname>$_SESSION</varname>. Star¹ie <varname>$HTTP_*_VARS</varname> polia, ako <varname>$HTTP_POST_VARS</varname>, stále existujú od ich predstavenia v PHP 3. &avail.register-long-arrays; </simpara> </listitem> <listitem> <simpara> Externé premenné u¾ viac nie sú registrované v globálnom hµadisku ako východzie. Inými slovami, poèiatkom PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink> je PHP direktíva <link linkend="ini.register-globals">register_globals</link> ¹tandardne <emphasis>off</emphasis> v &php.ini;. Preferovaná metóda pristupovania k týmto hodnotám je cez autoglobálne polia spomenuté. vy¹¹ie. Star¹ie skripty, knihy a tutoriály sa mô¾u spolieha» na to, ¾e je táto direktíva zapnutá. Ak by bola zapnutá, napríklad, dala by sa pou¾i» <varname>$id</varname> z URL <literal>http://www.example.com/foo.php?id=42</literal>. Èi u¾ zapnutá alebo vypnutá, <varname>$_GET['id']</varname> je dostupná. </simpara> </listitem> </itemizedlist> Pre viac detailov o týchto zmenách, pozri sekciu o <link linkend="language.variables.predefined">preddefinovaných premenných</link> a tam uvedené odkazy. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Èo ïalej?</title> <para> S va¹imi novými znalos»ami by ste mali by» schopný pochopi» väè¹inu manuálu a tie¾ rôzne vzorové skripty dostupné v archívoch príkladov. Tie¾ mô¾ete nájs» ïal¹ie príklady na stránkach php.net v sekcii odkazov: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> <para> Pre nazretie do rôznych slide prezentácii, ktoré ukazujú viac z toho, èo PHP doká¾e, pozri PHP Stránky Konferenèného Materiálu: <ulink url="&url.php.conf;"> &url.php.conf;</ulink> a <ulink url="&url.php.talks;">&url.php.talks; </ulink> </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
http://cvs.php.net/co.php/phpdoc-sk/chapters/tutorial.xml?r=1.1&p=1 Index: phpdoc-sk/chapters/tutorial.xml +++ phpdoc-sk/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.34 Maintainer: joseph Status: ready --> <chapter id="tutorial"> <title>Jednoduchý tutoriál</title> <para> Tu by sme vám chceli ukáza» úplné základy PHP v skratke, jednoduchý tutoriál. Tento text sa zaoberá iba dynamickou tvorbou webovskej stránky s PHP, i keï PHP nie je iba schopné vytvára» webovské stránky. Pozri sekciu s názvom <link linkend="intro-whatcando">Èo doká¾e PHP</link> pre viac informácii. </para> <para> Webové stránky pou¾ívajúce PHP sa spracovávajú práve tak ako be¾né HTML stránky a mô¾ete ich vytvára» a editova» rovnakým spôsobom akým normálne vytvárate be¾né HTML stránky. </para> <sect1 id="tutorial.requirements"> <title>Èo potrebujem?</title> <para> V tomto tutoriále predpokladáme, ¾e vá¹ server má aktivovanú podporu pre PHP a ¾e v¹etky súbory konèiace na <filename>.php</filename> sa spracovávané pomocou PHP. Na väè¹ine serverov je toto východzia prípone pre PHP súbory, ale pre istotu sa spýtajte vá¹ho server administrátora. Ak vá¹ server podporuje PHP, potom nemusíte urobi» niè. Len vytvorte va¹e <filename>.php</filename> súbory, vlo¾te ich do vá¹ho web adresára a server ich pre vás automaticky spracuje. Nie je nutné èokoµvek kompilova» ani nemusíte in¹talova» extra nástroje. Pod týmito PHP súbormi si predstavte jednoduché HTML súbory s celou novou rodinou magických tagov, ktoré vám umo¾òujú robi» v¹etky druhy vecí. Väè¹ina web hostov ponúka PHP podporu, ale ak vá¹ host nie, uvá¾te èítanie sekcie <ulink url="&url.php.links;">PHP Liniek</ulink> pre zdroje ako vyhµada» web hosty pou¾ívajúce PHP. </para> <para> Povedzme, ¾e chcete u¹etri» cennú ¹írku pásma a vyvíja» lokálne. V tomto prípade budete chcie» nain¹talova» webovský server, ako je <link linkend="install.apache">Apache</link> a, samozrejme, <ulink url="&url.php.downloads;">PHP</ulink>. S najväè¹ou pravdepodobnos»ou budete tie¾ chcie» nain¹talova» databázu, ako je <ulink url="&url.mysql.docs;">MySQL</ulink>. </para> <para> Tieto mô¾ete nain¹talova» buï individuálne alebo si zvoli» jednoduch¹í spôsob. Ná¹ manuál má <link linkend="install">in¹talaèné in¹trukcie pre PHP</link> (predpokladajúci, ¾e u¾ nejaký web server máte nastavený). V prípade, ¾e sami máte problémy s in¹taláciou PHP, navrhovali by sme vám polo¾i» svoje otázky na na¹om <ulink url="&url.php.mailing-lists;">in¹talaènom mailing liste</ulink>. Ak si zvolíte kráèa» po jednoduch¹ej ceste, potom <ulink url="&url.installkits;">lokalizujte predkonfigurovaný balík</ulink> pre vá¹ operaèný systém, ktorý automaticky v¹etko toto nain¹taluje len pomocou pár kliknutí my¹ou. Je jednoduché nastavi» web server s PHP podporou na akomkoµvek operaènom systéme, vrátane MacOSX, Linux a Windows. Na Linuxe, mô¾ete poklada» <ulink url="&url.rpmfind;">rpmfind</ulink> a <ulink url="&url.rpmfind.pbone;">PBone</ulink> za nápomocné pre lokalizáciu RPM-iek. Mô¾ete tie¾ chcie» nav¹tívi» <ulink url="&url.apt-get;">apt-get</ulink> na vyhµadanie balíkov pre Debian. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Va¹a prvá PHP stránka</title> <para> Vytvorte súbor s názvom <filename>hello.php</filename> a vlo¾te ho do root adresára vá¹ho web servera (<varname>DOCUMENT_ROOT</varname>) s následujúcim obsahom: </para> <para> <example> <title>Ná¹ prvý PHP skript: <filename>hello.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Ahoj Svet</p>'; ?> </body> </html> ]]> </programlisting> <simpara> Pou¾ijte vá¹ prehliadaè pre prístup k súboru s URL vá¹ho web servera, konèiac na odkaz súboru "/hello.php". Pri lokálnom vývoji bude táto URL vyzera» asi ako <literal>http://localhost/hello.php</literal> alebo <literal>http://127.0.0.1/hello.php</literal>, ale to závisí od nastavenia web servera. Ak je v¹etko nastavené správne, tak PHP tento súbor spracuje a následujúci výstup bude poslaný vá¹mu prehliadaèu: </simpara> <screen role="html"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> <p>Ahoj Svet</p> </body> </html> ]]> </screen> </example> </para> <para> Tento program je extrémne jednoduchý a vôbec ste nemuseli PHP pou¾i» na vytvorenie stránky ako je táto. V¹etko, èo robí je zobrazenie: <literal>Ahoj Svet</literal> pomocou PHP príkazu <function>echo</function>. V¹imnite si, ¾e súbor <emphasis>nemusí by» spustitelný</emphasis> alebo nejakým spôsobom ¹peciálny. Server zistí, ¾e sa tento súbor musí interpretova» PHP-èkom, preto¾e ste pou¾ili príponu ".php", na ktorú je server nastavený, aby bola predaná PHP-èku. Predstavte si to ako normálny HTML súbor, ktorý má pre vás dostupnú ¹peciálnu sadu tagov, ktoré robia mno¾stvo zaujímavých vecí. </para> <para> Ak ste tento príklad vyskú¹ali a nestalo sa niè, objavilo sa okno pre download alebo vidíte celý súbor ako text, mo¾ností sú také, ¾e server, na ktorom be¾íte nemá povolené PHP alebo nie je vhodne nastavený. Po¾iadajte svojho administrátora, aby vám ho pre vás povolil pomocou kapitoly <link linkend="installation">In¹talácia</link> manuálu. Ak vyvíjate lokálne, tie¾ si preèítajte in¹talaènú kapitolu, aby ste sa uistili, ¾e v¹etko je vhodne nastavené. Uistite sa, ¾e pristupujete k súboru cez http so serverom poskytujúcim výstup. Ak iba zavoláte súbor z vá¹ho súborového systému, potom sa nespracuje PHP-èkom. Ak aj napriek v¹etkému problémy budú pretrváva», neváhajte pou¾i» jednu z mnohých volieb <ulink url="&url.php.support;">PHP podpory</ulink>. </para> <para> Cieµom príkladu je ukáza» ¹peciálny formát PHP tagov. V tomto príklade sme pou¾ili <literal><?php</literal> na oznaèenie zaèiatku PHP tagu. Potom sme vlo¾ili PHP príkaz a ponechali sme PHP mód pridaním koncového tagu, <literal>?></literal>. Mô¾ete takto skáka» do a z PHP módu v HTML súbore kdekoµvek, kde chcete. Viac detailov získate èítaním sekcie manuálu o <link linkend="language.basic-syntax"> základnom PHP syntaxe</link>. </para> <note> <title>Poznámka o Textových Editoroch</title> <para> Existuje mnoho textových editorov a Integrovaných vývojových prostredí (IDE), ktoré mô¾ete pou¾i» na tvorbu, editovanie a mana¾ment PHP súborov. Èiastoèný zoznam týchto nástrojov sa udr¾iava v <ulink url="&url.phpeditorlist;">Zozname PHP Editorov</ulink>. Ak si ¾eláte nejaký editor doporuèi», prosím nav¹tívte horeuvedenú stránku a po¾iadajte správcu stránky o pridanie editoru do zoznamu. Vlastnie editora s výrazòovaním syntaxu mô¾e by» u¾itoèné. </para> </note> <note> <title>Poznámka o Word Processoroch</title> <para> Word processory ako sú StarOffice Writer, Microsoft Word a Abiword nie sú optimálne pre editovanie PHP súborov. Ak si ¾eláte jeden pou¾i» pre tento testovací skript, musíte sa uisti», ¾e ukladáte súbor ako <emphasis>prostý text</emphasis> ináè PHP nebude schopné skript vykona». </para> </note> <note> <title>Poznámka o Windows Notepad</title> <para> Ak svoje PHP skripty pí¹ete pomocou Windows Notepad, budete sa musie» uisti», ¾e sa va¹e súbory ukladajú s príponou .php. (Notepad automaticky súborom pridáva príponu .txt pokiaµ neurobíte jeden z následujúcich krokov, aby ste tomu predi¹li.) Keï ukladáte súbor a ste vyzvaný k poskytnutiu názvu pre súbor, vlo¾te názov súboru do úvodzoviek (napr. "<filename>hello.php</filename>"). Poprípade, mô¾ete kliknú» na 'Text Documents' vo vysúvacom menu v dialógovom okne 'Save' a zmeni» nastavenie na "All Files". Potom mô¾ete zada» svoj názov súboru bez úvodzoviek. </para> </note> <para> Teraz, keï ste úspe¹ne vytvorili fungujúci PHP skript, je èas vytvori» najznámej¹í PHP skript! Zavolajte funkciu <function>phpinfo</function> a uvidíte veµa u¾itoèných informácii o va¹om systéme a nastaveniach akú sú dostupné <link linkend="language.variables.predefined">preddefinované premenné</link>, nahrané PHP moduly a <link linkend="configuration">konfiguraèné</link> nastavenia. Venujte nejaký èas prezretiu týchto dôle¾itých infomácii. </para> <para> <example> <title>Získanie systémových informácii z PHP</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> </sect1> <sect1 id="tutorial.useful"> <title>Nieèo U¾itoèné</title> <para> Urobme teraz nieèo u¾itoènej¹ie. Chceme zisti», aký druh prehliadaèa náv¹tevník pou¾íva. Kvôli tomu skontrolujeme re»azec u¾ívateµského agenta, ktorý prehliadaè posiela ako èas» HTTP po¾iadavky. Táto informácii je ulo¾ená v <link linkend="language.variables">premennej</link>. Premenné v PHP v¾dy zaèínajú znakom dolára. Premenná, o ktorú sa práve teraz zaujímame je <varname>$_SERVER['HTTP_USER_AGENT']</varname>. </para> <note> <para> <link linkend="reserved.variables.server">$_SERVER</link> je ¹peciálna rezervovaná PHP premenná, ktorá obsahuje v¹etky informácie o web serveri. Je známa ako autoglobála (alebo superglobála). Pozrite si odpovedajúcu stránku manuálu o <link linkend="language.variables.superglobals">superglobálach</link> pre viac informácii. Tieto ¹peciálne premenné boli predstavené v PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Pred týmto èasom sme miesto nich pou¾ívali star¹ie <varname>$HTTP_*_VARS</varname> polia, ako je <varname>$HTTP_SERVER_VARS</varname>. I keï odmietané, tieto star¹ie premenné stále existujú. (Tie¾ si pozrite poznámku o <link linkend="tutorial.oldcode">starom kóde</link>.) </para> </note> <para> Na zobrazenie tejto premennej, mô¾ete jednoducho urobi»: </para> <para> <example> <title>Vypísanie premennej (Prvok poµa)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER['HTTP_USER_AGENT']; ?> ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) </screen> </example> </para> <para> Existuje mnoho <link linkend="language.types">typov</link> premenných dostupných v PHP. V hore-uvedenom príklade sme výpisali prvok <link linkend="language.types.array">Poµa</link>. Polia mô¾u by» veµmi u¾itoèné. </para> <para> <varname>$_SERVER</varname> je len jedna premenná, ktorú vám PHP automaticky sprístupní. Zoznam sa dá vidie» v sekcii manuálu <link linkend="reserved.variables">Rezervované Premenné</link> alebo ich kompletný zoznam mô¾ete získa» pozrením sa na výstup funkcie <function>phpinfo</function> pou¾itej v príklade v predo¹lej sekcii. </para> <para> Do vnútra PHP tagu mô¾ete vlo¾i» viaceré PHP príkazy a vytvori» malé bloky kódu, ktoré robia viac ne¾ len jednoduché echo. Napríklad, ak chcete zisti», èi sa pou¾íva Internet Explorer, mô¾ete urobi» toto: </para> <para> <example> <title>Príklad vyu¾ívajúci <link linkend="language.control-structures">riadiace ¹truktúry</link> a <link linkend="language.functions">funkcie</link></title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { echo 'Pouzivate Internet Explorer.<br />'; } ?> ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> <![CDATA[ Pouzivate Internet Explorer.<br /> ]]> </screen> </example> </para> <para> Tu predstavujeme niekoµko nových konceptov. Máme príkaz <link linkend="control-structures.if">if</link>. Ak ste oboznámený so základným syntaxom pou¾ívaným jazykom C, tak by vám toto malo pripada» logické. Inak by ste si pravdepodobne mali vybra» nejakú úvodnú PHP knihu a preèíta» si prvých pár kapitol, alebo si preèíta» èas» manuálu <link linkend="langref">Referencia Jazyka</link>. Zoznam PHP kníh mô¾ete nájs» na <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Druhý koncept, ktorý sme predstavili bolo funkèné volanie <function>strpos</function> <function>strpos</function> je funkcia vstavaná do PHP ktorá vyhµadáva re»azec v re»azci. V tomto prípade hµadáme <literal>'MSIE'</literal> (takzvaná ihla) vo <varname>$_SERVER['HTTP_USER_AGENT']</varname> (takzvaný stoh sena). Ak sa ihla nájde v stohu sena, funkcia vráti pozíciu ihly relatívne k zaèiatku stohu sena. Inak vracia &false;. Ak nevráti &false;, výraz <link linkend="control-structures.if">if</link> vyhodnotí &true; a vykoná sa kód vo vnútri {zátvoriek}. Inak sa kód nespustí. Nebojte sa vytvára» podobné príklady, s <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> a inými funkciami ako sú <function>strtoupper</function> a <function>strlen</function>. Ka¾dá zodpovedajúca stránka manuálu obsahuje tie¾ príklady. Ak si pou¾ítím funkcie nie ste istý, budete si chcie» preèíta» stránku manuálu <link linkend="about.prototypes">ako èíta» definíciu funkcie</link> a sekciu o <link linkend="language.functions">PHP funkciách</link>. </para> <para> Mô¾eme teda urobi» krok ïalej a ukáza» ako mô¾ete skáka» do a z PHP módu, dokonca aj v strede PHP bloku: </para> <para> <example> <title>Mie¹anie módov HTML a PHP</title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { ?> <h3>strpos() musela vratit nie-false</h3> <p>Pouzivate Internet Explorer</p> <?php } else { ?> <h3>strpos() musela vratit false</h3> <p>Nepouzivate Internet Explorer</p> <?php } ?> ]]> </programlisting> <para> Vzorový výstup tohto skritpu mô¾e by»: </para> <screen role="html"> <![CDATA[ <h3>strpos() musela vratit nie-false</h3> <p>Pouzivate Internet Explorer</p> ]]> </screen> </example> </para> <para> Namiesto pou¾itia PHP príkazu echo na vypísanie nieèoho, vyskoèili sme z PHP módu a poslali len priame HTML. Dôle¾itým a mocným bodom na poznamenanie je, ¾e logický prúd skriptu zostáva netaktný. Iba jeden z HTML blokov skonèí poslaním pozorovateµovi závisiac od výsledku <function>strpos</function>. Inými slovami, závisí od toho, èi sa re»azec <literal>MSIE</literal> na¹iel alebo nie. </para> </sect1> <sect1 id="tutorial.forms"> <title>Spracovanie Formulárov</title> <para> Jedna z najmocnej¹ích vlastností PHP je spôsob, akým narába s HTML formulármi. Základný koncept, ktorý je dôle¾itý pochopi» je, ¾e ka¾dý prvok formulára bude automaticky dostupný vá¹mu PHP skritpu. Prosím, preèítajte si sekciu manuálu o <link linkend="language.variables.external">Premenných z vonka PHP</link> pre viac informácii a príkladov ako pou¾íva» formuláre s PHP. Tu je príklad HTML formulára: </para> <para> <example> <title>Jednoduchý HTML formulár</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="post"> <p>Tvoje meno: <input type="text" name="name" /></p> <p>Tvoj vek: <input type="text" name="age" /></p> <p><input type="submit" /></p> </form> ]]> </programlisting> </example> </para> <para> Na tomto formulári nie je niè ¹peciálne. Je to priamy HTML formulár bez ¾iadnych ¹peciálnych tagov akéhokoµvek druhu. Keï u¾ívatel tento formulár vyplní a stlaèí tlaèidlo submit, zavolá sa stránka <filename>action.php</filename>. V tomto súbore by ste napísali nieèo ako toto: </para> <para> <example> <title>Vypísanie dát z ná¹ho formulára</title> <programlisting role="php"> <![CDATA[ Ahoj <?php echo $_POST['name']; ?>. Mas <?php echo $_POST['age']; ?> rokov. ]]> </programlisting> <para> Vzorový výstup tohto skriptu mô¾e by»: </para> <screen role="html"> <![CDATA[ Ahoj Joe. Ma¹ 22 rokov. ]]> </screen> </example> </para> <para> Malo by by» zrejmé, èo toto robí. Niè na tom nie je. Premenné <varname>$_POST['name']</varname> a <varname>$_POST['age']</varname> sa vám automaticky nastavia PHP-èkom. Pred tým sme pou¾ili autoglobálu <varname>$_SERVER</varname>; hore sme len predstavili autoglobálu <link linkend="reserved.variables.post">$_POST</link>, ktorá obsahuje v¹etky POST dáta. V¹imnite si ako sa <emphasis>metóda</emphasis> ná¹ho formulára POST-ne. Ak by sme pou¾ili metódu <emphasis>GET</emphasis>, potom by informácia formulára ¾ila v autoglobále <link linkend="reserved.variables.get">$_GET</link>. Mô¾ete tie¾ pou¾i» autoglobálu <link linkend="reserved.variables.request">$_REQUEST</link>, ak sa nestaráte o zdroj vami po¾adovaných dát. Obsahuje spojenú informáciu o GET, POST a COOKIE dátach. Tie¾ pozri funkciu <function>import_request_variables</function>. </para> <para> V PHP tie¾ mô¾ete narába» s XForms vstupom, i keï budete na nejaký èas spokojný s dobre podporovanými HTML formulármi. Aj keï práca s XFormami nie je pre zaèiatoèníkov, snáï sa o ne budete zaujíma». Máme tie¾ <link linkend="features.xforms">krátky úvod k spracovaniu dát prijímanými XFormami</link> v na¹ej sekcii vlastností. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>Pou¾ívanie starého kódu s novými verziami PHP</title> <para> Teraz, keï PHP vyrástlo na populárny skriptovací jazyk, vzniklo mnoho verejných prameòom a kni¾níc obsahujúcich kód, ktorý mô¾ete znovu pou¾i». PHP vývojári sa èo najviac pokúsili zachova» spätnú kompatibilitu, tak¾e skript napísaný pre star¹iu verziu bude be¾a» (ideálne) bez zmien v nov¹ej verzii PHP. V praxi to znamená, ¾e nejaké zmeny budú zvyèajne potrebné. </para> <para> Dve z najdôle¾itej¹ích nedávnych zmien, ktoré ovplyvòujú starý kód sú: <itemizedlist> <listitem> <simpara> Odmietanie starých <varname>$HTTP_*_VARS</varname> polí (ktoré sa musia indikova» ako globálne pri pou¾ití vo vnútri funkcie alebo metódy). Následujúce <link linkend="language.variables.superglobals">autoglobálne polia</link> boli predstavené v PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Sú to: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_FILES</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> a <varname>$_SESSION</varname>. Star¹ie <varname>$HTTP_*_VARS</varname> polia, ako <varname>$HTTP_POST_VARS</varname>, stále existujú od ich predstavenia v PHP 3. &avail.register-long-arrays; </simpara> </listitem> <listitem> <simpara> Externé premenné u¾ viac nie sú registrované v globálnom hµadisku ako východzie. Inými slovami, poèiatkom PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink> je PHP direktíva <link linkend="ini.register-globals">register_globals</link> ¹tandardne <emphasis>off</emphasis> v &php.ini;. Preferovaná metóda pristupovania k týmto hodnotám je cez autoglobálne polia spomenuté. vy¹¹ie. Star¹ie skripty, knihy a tutoriály sa mô¾u spolieha» na to, ¾e je táto direktíva zapnutá. Ak by bola zapnutá, napríklad, dala by sa pou¾i» <varname>$id</varname> z URL <literal>http://www.example.com/foo.php?id=42</literal>. Èi u¾ zapnutá alebo vypnutá, <varname>$_GET['id']</varname> je dostupná. </simpara> </listitem> </itemizedlist> Pre viac detailov o týchto zmenách, pozri sekciu o <link linkend="language.variables.predefined">preddefinovaných premenných</link> a tam uvedené odkazy. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Èo ïalej?</title> <para> S va¹imi novými znalos»ami by ste mali by» schopný pochopi» väè¹inu manuálu a tie¾ rôzne vzorové skripty dostupné v archívoch príkladov. Tie¾ mô¾ete nájs» ïal¹ie príklady na stránkach php.net v sekcii odkazov: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> <para> Pre nazretie do rôznych slide prezentácii, ktoré ukazujú viac z toho, èo PHP doká¾e, pozri PHP Stránky Konferenèného Materiálu: <ulink url="&url.php.conf;"> &url.php.conf;</ulink> a <ulink url="&url.php.talks;">&url.php.talks; </ulink> </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->