| Posledná návšteva 31 Júl 2010 03:29 |
Aktuálny čas je 31 Júl 2010 03:29
|
Stránka 1 z 1
|
[ Príspevkov: 8 ] |
|
|
Jednoduchy PHP tutorial + par zlozitejsich konstrukcii
| Autor |
Správa |
|
martasko
Helper
Registrovaný: 24 Dec 2006 16:00 Príspevky: 377
Warlinks: 720.34 Pohlavie:
|
 Jednoduchy PHP tutorial + par zlozitejsich konstrukcii
== simple php tutorial by Martasko == tento mini php tutorial obsahuje tie najzakladnejsie zaklady z php  predpoklada sa znalost: navody-f30/warlink-kurz-php-t71267.htm1. prikaz include: vlozi obsah suboru na nami zadane miesto priklad: subor: say_hello.php subor: hello.php asi kazdy vie co sa vypise na obrazovku do prehliadaca po spusteni hello.php  podobne funkcie: include_once - zabrani vlozeniu toho isteho suboru viackrat require - ak subor co chcem vlozit neexistuje tak sa vykonavanie skriptu skonci s chybovou hlaskou require_once 2. <?php phpinfo(); ?> vypise podrobnu tabulku o sucasnej konfiguracii php 3. <? var_dump( $nejaka_premenna);?> vypise informacia o zadanej premennej priklad: vystup: 3. podmienky if, else, elseiftreba si dat pozor na = a == = znamena priradenia == znamena "rovna sa" dalsie typy: != nerovna sa <= mensie rovne >= vacsie rovne > vacsie < mensie negaciu podmienky urobime pridanim ! za prvu zatvorku ( napr.: podmienka isset(); // IsSet() kontroluje ci uz bola nastavane hodnotu pre nejaku premennu napr.: podobna funkcia: switchpriklad pouzitia najdeme na manualovej stranke: 4. Super globalne polia$_GET - obsahuje vsetky premenne poslane cez HTTP GET poziadavok (URL adresa). napr. mame URL v tvare http://nejaka_domena.tld/index.php?id=3&nick=martasko&year=2008tak $_GET['id'] == 3 a $_GET['nick'] == martasko $_GET['year'] == 2008 posielane data su v url uvedene za ? a su oddelene &$_POST - obsahuje vsetky premenne poslane cez HTTP POST poziadavok (napr. posielanie dat z HTML formularov) $_SERVER - obsahuje hodnoty serverovych premennych. napr. $_SERVER[' REMOTE_ADDR'] obsahuje ip adresu uzivatela vsetky hodnoty sa mozeme dozvediet pomocou phpinfo() dalej uz len spomeniem $_FILES, $_COOKIE, $_ENV, $_SESSION a $_REQUEST5. spracovanie HTML formularupriklad: subor: formular.php vysvetlenie:html tag form obsahuje atribut method, ktora moze nadobudnut dve hodnoty a to post a get. tento parameter nam urcuje typ, ktorym sa budu posielat data. v nasom pripade vyuzijeme metodu post. action obsahuje stranku na, na ktoru sa data poslu. V nasom pripade je to ta ista stranka (formular.php) je dolezite aby html tagy obsahovali atribut name, aby sme sa potom v php mohli odkazovat na poslane hodnoty php kod: podmienka kontroluje ci bolo stlacene tlacitko poslat. HTML tag input obsahuje name="poslat", takze po stlaceni tohto tlacitka sa nam v superglobalnom poli $_POST vytvori kluc poslat s hodnotou posli. Tento jav vyuzijeme tak, ze v php budeme v podmienke kontrolovat ci uz bola nastavena hodnota. ak je podmienka splnena tak sa nam zobrazia setky hodnoty co sme zadali ps.: ak by sme pouzili metodu get tak by sme potom v php vyuzili namiesto pola $_POST pole $_GET 6. spracovanie textu pri posielani dat z formularov: funkcia trim() - odstrani prazdne znaky na zaciatku a na konci textu // vystup: addslashes - pridava \ pre ' a " htmlspecialchars - pouziva sa pri vypisovani textu, v ktorom nechceme interpretovat HTML znacky jednoducho povedane: zameni '<' za '<' '>' za ' '>''&' za '&'------------------------------------------------------------------------------- EDIT 25.03.  ------------------------------------------------------------------------------- pridanie niekolko zlozitejsich konstrukcii z jazyka php. Prevazne praca sa objektami. Teraz sa mi, nechcelo vsetko vysvetlovat, takze to bude strucnejsie a o dost tazsie  . Predpoklada sa znalost jazyka php5 // jak preliezt adresar s SPL iteratorom. Je nutne mat v php podporu SPL // rekurzivny prechod adresarom (tj. vratane podadresarov) // multi array iterator  - skoro taky isty ako RecursiveDirectoryIterator // ukazka zretazeneho spracovania // Cela sranda je v tom return $this Nakoniec specialitka s privatnym kontruktorom. Zaujimalo by ma ci tomu niekto pochopi  . Je to taky menej dokonaly singleton (navrhovy vzor) Pokial sa vam na to lepsie pozera so zvyraznenim kodom tak: pastebin.com/fccd7e08
_________________
  LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified
Naposledy upravil martasko dňa 25 Mar 2009 18:57, celkovo upravené 2
|
| 18 Jún 2008 19:26 |
|
 |
|
ManthY
Double progress
Registrovaný: 14 Jan 2009 15:31 Príspevky: 117
Warlinks: 149.44 Pohlavie:
|
 Re: jednoduchy PHP tutorial by Martasko
dobree ja som sa uz ucil PhP davnejsie 
_________________
|
| 22 Feb 2009 09:50 |
|
 |
|
martasko
Helper
Registrovaný: 24 Dec 2006 16:00 Príspevky: 377
Warlinks: 720.34 Pohlavie:
|
Pridal som par pokrocilejsich veci. Tentokrat som to, ale moc nevysvetloval
_________________
  LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified
|
| 25 Mar 2009 18:59 |
|
 |
|
sanyika
Best user company
Registrovaný: 01 Máj 2008 19:40 Príspevky: 674
Warlinks: 80.88 Bydlisko: Treti smetiak vedla tvojho :D Pohlavie:
|
ta prva cast je pekne spracovana...ale z druhej som nepochopil ani pismeno.... nechcelo by sa ti spravit niekedy OOP tutorial???
_________________
|
| 25 Mar 2009 19:53 |
|
 |
|
robec_ic
Helper Kritik
IT Fan
Registrovaný: 12 Feb 2008 18:42 Príspevky: 4690
Warlinks: 72144.05 Bydlisko: http://www.splendid.sk Pohlavie:
|
no dobry napad OOP beginer tutorial by som rad videl od Martaska
_________________
 Tutorialy, clanky, navody, rady, tipy a triky ... citaj Splendid Magazin -> www.splendid.sk
|
| 25 Mar 2009 20:11 |
|
 |
|
martasko
Helper
Registrovaný: 24 Dec 2006 16:00 Príspevky: 377
Warlinks: 720.34 Pohlavie:
|
Tak snad aspon tie iteratory hej. To som len ukazal zapis ako sa prechadza cez adresar/pole - takym modernejsim sposobom. Tam sa toho ani moc neda vysvetlit. Co sa tyka tych 2 tried co som tam dal. 1. mala demostrovat zretazene volanie metod z triedy. Aby si nemusel pisat: $objekt = new Chain(); $objekt->first(); $objekt->second(); $objekt->third(); Tym, ze sa tam prida to return $this. To znamena, ze metoda vracia aktualny objekt, a ako vies nad objektom mozes volat jednu z troch uvedenych metod (first, second, third). Takze tento fakt ti dovoluje zavolat metody zasebou $objekt->first()->second()->third(); a to druhe je specialitka pretoze zakazuje vytvaranie objektu pomocou new. Pokusim sa vsvetlit. Prikaz new ti vytvara objekt. Vzhladom na to, ze je tam pouzity private pred __construct, to sposobi, ze ti to zakaze vytvaranie objektu. Potom tam vidis dva modifikatory static. static ti sposobi, ze dana metoda/premenna je v pamati len raz, a je spolocna pre cely objekt. klucove slovo static pred metodou highlight_code dovoluje zapis: nazov_tridy::volana_metoda; Takze co sa deje po zavolani: Zvyraznovac::highlight_code($text); spusti sa mi metoda highlight_code. Tato metoda mi zvyraznuje kod v texte medzi znackami <prec class="typ_kodu">..kod..</pre>. Na toto zvyraznenie som uz pouzit fshl parser. (viz odkaz co tam je). Standardne pouzite toho zvyraznovaca je napr.: co ti zvyrazni $text . Je to vlastne taka krajsia a funkcia highlight_string. No ale to som kus odbocil takze pokracujeme v tom ako metoda highlight_code v class Zvyraznovac funguje. Pretoze nemam vytvoreny objekt vlastnej triedy. Tak ho musim vytvorit. Najprv si skontrolujem, ci som uz nahodou objekt nevytvaral if (self::$instance === NULL) { Ak objekt este neexistuje tak ho vytvorim. Pomocou self:: sa zo statickej metody odvolavam na vlastnu triedu. (vzdy volam NAZOV_TRIEDY::staticka_metoda/staticka_premmena, a NAZOV_TRIEDY je v nasom pripade, nasa vlastna trieda takze self - snad dost pochopitelne co tam to self robi). pri self::$instance = new self(); sa vytvara instancia (objekt) nasej vlastnej triedy. Taktiez sa automaticky zavola metoda __construct(). Ta nastavi $options a zavola rodicovky constructor - parent::fshlParser("HTML", $options);. Vidime hore to 'extends' tzn. ze nasa trieda Zvyraznvac dedi vsetky metody z triedy fshlParser. to parent:: je podobne ako to self:: . Len parrent:: odkazuje na nadradenu triedu a self na aktualnu. potom mame nejaky ten regularny vyraz, ktory hlada v texte <pre class="NIECO"> text </pre> . Pokial tomu niekto nechape tak: regularnivyrazy.info no a nakoniec mame funkciu preg_replace_callback, ktora nam nad vyhovujucim textom vzdy zavola metodu replaceCallback. Druhy parameter tejto funkcie je typu CallBack. Ak niekto nevie co to je tak: cz.php.net/manual/en/language.pseudo-types.php#language.types.callback to by snad malo vyvetlit tento zapis: array(self::$instance, 'replaceCallback'), Snad to uz je trochu jasnejsie ako to posladna trieda funguje. ps.: nechce sa mi to po sebe citat tak snad tam moc vela chyb nebude ----------- edit: nejake dotazy? a ten tutorial sa mi moc nechce pisat. Som proste na nieco take dost lenivy
_________________
  LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified
|
| 25 Mar 2009 21:11 |
|
 |
|
sanyika
Best user company
Registrovaný: 01 Máj 2008 19:40 Príspevky: 674
Warlinks: 80.88 Bydlisko: Treti smetiak vedla tvojho :D Pohlavie:
|
 Re:
martasko píše: ... Snad to uz je trochu jasnejsie ako to posladna trieda funguje. ps.: nechce sa mi to po sebe citat tak snad tam moc vela chyb nebude
----------- edit: nejake dotazy? a ten tutorial sa mi moc nechce pisat. Som proste na nieco take dost lenivy dakujem...pochopil som toho viac  ...no tak vies...ten tut treba napisat len raz...tak hadam si to rozmyslis...mnohy by sme sa tomu urcite potesili "pan ucitel" martasko 
_________________
|
| 26 Mar 2009 19:55 |
|
 |
|
martasko
Helper
Registrovaný: 24 Dec 2006 16:00 Príspevky: 377
Warlinks: 720.34 Pohlavie:
|
 Re: Jednoduchy PHP tutorial + par zlozitejsich konstrukcii
ze ucitel ja neviem co by som tam pisal. zaklady su popisane v seriali na zive.cz. Tam su vysvetlene aj tzv. magicke metody (__get, __set, __wakeup...). A naco sa opakovat. Vazne neviem co ine by som mohol o objektoch napisat. Napadlo ma len par tychto konstrukcii, co vidis vyssie. Pretoze veci z SPL su popisane dost biedne (ani ja ich nejak extra neovladam), zretazenie metod som tiez nikde nevidel. A ten posledny priklad singletonu sa tiez bezne v navodoch nevyskytuje. Ja navyse v php moc nerobim, len prilezitostne.
_________________
  LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified
|
| 26 Mar 2009 20:15 |
|
 |
|
Stránka 1 z 1
|
[ Príspevkov: 8 ] |
|
Kto je on-line |
Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 0 hostia |
|
Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|