Warlink - Najlepšie Slovenské Warez fórum

 
Klik Klik

Posledná návšteva 31 Júl 2010 03:29 Aktuálny čas je 31 Júl 2010 03:29




 [ Príspevkov: 8 ] 
 Jednoduchy PHP tutorial + par zlozitejsich konstrukcii 
Autor Správa
Helper
Helper|Helper|Helperka
martasko

Registrovaný: 24 Dec 2006 16:00
Príspevky: 377
Warlinks: 720.34
Pohlavie: Nešpecifikované
Poslať 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.htm

1. prikaz include:
vlozi obsah suboru na nami zadane miesto
priklad:

subor: say_hello.php
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


subor: hello.php
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

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:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

vystup:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

3. podmienky if, else, elseif
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

treba 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.:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


podmienka isset(); // IsSet()
kontroluje ci uz bola nastavane hodnotu pre nejaku premennu
napr.:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia



podobna funkcia: switch
priklad pouzitia najdeme na manualovej stranke:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

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=2008
tak $_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 $_REQUEST

5. spracovanie HTML formularu

priklad:
subor: formular.php
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


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.
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

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
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

// vystup:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


addslashes - pridava \ pre ' a "
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

htmlspecialchars - pouziva sa pri vypisovani textu, v ktorom nechceme interpretovat HTML znacky
jednoducho povedane:
zameni
'<' za '&lt;'
'>' za ''&gt;'
'&' za '&amp;'

Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


-------------------------------------------------------------------------------
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 :D. Predpoklada sa znalost jazyka php5

// jak preliezt adresar s SPL iteratorom. Je nutne mat v php podporu SPL
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

// rekurzivny prechod adresarom (tj. vratane podadresarov)
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

// multi array iterator :) - skoro taky isty ako RecursiveDirectoryIterator
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

// ukazka zretazeneho spracovania
// Cela sranda je v tom return $this
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia


Nakoniec specialitka s privatnym kontruktorom. Zaujimalo by ma ci tomu niekto pochopi :). Je to taky menej dokonaly singleton (navrhovy vzor)
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia

Pokial sa vam na to lepsie pozera so zvyraznenim kodom tak: pastebin.com/fccd7e08

_________________
ObrázokObrázok
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 Profil
Double progress
Double progress
Obrázok užívateľa

Registrovaný: 14 Jan 2009 15:31
Príspevky: 117
Warlinks: 149.44
Pohlavie: Nešpecifikované
Poslať Re: jednoduchy PHP tutorial by Martasko
dobree ja som sa uz ucil PhP davnejsie :)

_________________
Obrázok


22 Feb 2009 09:50 Profil
Helper
Helper|Helper|Helperka
martasko

Registrovaný: 24 Dec 2006 16:00
Príspevky: 377
Warlinks: 720.34
Pohlavie: Nešpecifikované
Poslať 
Pridal som par pokrocilejsich veci. Tentokrat som to, ale moc nevysvetloval

_________________
ObrázokObrázok
LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified


25 Mar 2009 18:59 Profil
Best user company
Best user company
sanyika

Registrovaný: 01 Máj 2008 19:40
Príspevky: 674
Warlinks: 80.88
Bydlisko: Treti smetiak vedla tvojho :D
Pohlavie: Muž
Poslať 
ta prva cast je pekne spracovana...ale z druhej som nepochopil ani pismeno....
nechcelo by sa ti spravit niekedy OOP tutorial???

_________________
Obrázok


25 Mar 2009 19:53 Profil
Helper
Helper|Helper|Helperka
Kritik
Kritik|Kritik|Kritička
IT Fan
IT Fan|IT Fan|IT Fan
Obrázok užívateľa

Registrovaný: 12 Feb 2008 18:42
Príspevky: 4690
Warlinks: 72144.05
Bydlisko: http://www.splendid.sk
Pohlavie: Muž
Poslať 
no dobry napad OOP beginer tutorial by som rad videl od Martaska

_________________
Obrázok
Tutorialy, clanky, navody, rady, tipy a triky ...
citaj Splendid Magazin -> www.splendid.sk


25 Mar 2009 20:11 Profil WWW
Helper
Helper|Helper|Helperka
martasko

Registrovaný: 24 Dec 2006 16:00
Príspevky: 377
Warlinks: 720.34
Pohlavie: Nešpecifikované
Poslať 
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.:
Len registrovaní užívatelia môžu pozerať odkazy v tagu code. Prihlásenie | Registrácia
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

_________________
ObrázokObrázok
LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified


25 Mar 2009 21:11 Profil
Best user company
Best user company
sanyika

Registrovaný: 01 Máj 2008 19:40
Príspevky: 674
Warlinks: 80.88
Bydlisko: Treti smetiak vedla tvojho :D
Pohlavie: Muž
Poslať 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 :)

_________________
Obrázok


26 Mar 2009 19:55 Profil
Helper
Helper|Helper|Helperka
martasko

Registrovaný: 24 Dec 2006 16:00
Príspevky: 377
Warlinks: 720.34
Pohlavie: Nešpecifikované
Poslať Re: Jednoduchy PHP tutorial + par zlozitejsich konstrukcii
ze ucitel :nono:
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.

_________________
ObrázokObrázok
LaTeX | VIM | Linux | Windows 7 | PHP-nette-framework | Java | Python | Bash | Metal Music | MCTS 70-640 certified


26 Mar 2009 20:15 Profil
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
 [ 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

Skočiť na:  
 
Reklamná plocha
 

Warlink © 2006-2010

Powered by phpBB © phpBB Group.
Funnyportal.eu - Najlepsie vtipy | RSS | Sitemap | Rapidshare
Time : 0.124s | 22 Queries | GZIP : Off
TOPlist