Ľuboš Lacko: VZORY (edit-jk)
01_02 Radšej vypisuj z premenných
$txt = "Nazdar, svet!";
print $txt;
Nazdar, svet!01_04 Akt. dátum a čas
print "Dnes je: ". date("d.m.Y H:i:s");
Dnes je: 04.04.2025 18:55:26
02_01 Echo vie vytlačiť viac reťazcov, print len jeden
echo "Babylonská", " ", "rybka,"," ", "odriekal tíško Stopárov sprievodca Galaxiou.";
Babylonská rybka, odriekal tíško Stopárov sprievodca Galaxiou.02_04 Zmena premennej aj jej typu = bežná vec
$X = 4;
print "Premenná \$X obsahuje hodnotu $X."."< br />";
$X = "Babylonská veža";
print "Premenná \$X obsahuje hodnotu $X."."< br />";
Premenná $X obsahuje hodnotu 4.
Premenná $X obsahuje hodnotu Babylonská veža.
02_05 Test citlivosti chybových hlásení
print "Premanná \$Z obsahuje hodnotu $Z."."< br />";
Premanná $Z obsahuje hodnotu .
02_06 Veľké a malé prísmená v názvoch premenných
$X = 4;
$x = 5;
print "Premenná \$X obsahuje hodnotu $X."."< br />";
print "Premenná \$x obsahuje hodnotu $x."."< br />";
Premenná $X obsahuje hodnotu 4.
Premenná $x obsahuje hodnotu 5.
02_07 Existencia premennej
$hokus = 42;
if(isset($hokus)) {print "Premenná \$hokus existuje.< br />";}
else {print "Premenná \$hokus neexistuje.<br />";}
if(isset($pokus)) {print "Premenná \$pokus existuje.<br />";}
else {print "Premenná \$pokus neexistuje.<br />";}
Premenná $hokus existuje.
Premenná $pokus neexistuje.
02_11 Odstránenie premennej
$hokus =42;
if(isset($hokus))
{print "Premenná \$hokus existuje.< br /> ";}
else
{print "Premenná \$hokus neexistuje.< br /> ";}
unset($hokus);
if(isset($hokus))
{print "Premenná \$hokus existuje.< br /> ";}
else
{print "Premenná \$hokus neexistuje.< br /> ";}
Premenná $hokus existuje.
Premenná $hokus neexistuje.
02_08 Zistím typ premennej
$pokus =42;
echo "Premenná \$pokus je typu ".gettype($pokus).".< br />";
$pokus =42.12;
echo "Premenná \$pokus je typu ".gettype($pokus).".< br />";
$pokus ="Ján Novák";
echo "Premenná \$pokus je typu ".gettype($pokus).".< br />";
$pokus =TRUE;
echo "Premenná \$pokus je typu ".gettype($pokus).".< br />";
Premenná $pokus (hodnota: 42) je typu integer.
Premenná $pokus (hodnota: 42.12) je typu double.
Premenná $pokus (hodnota: Ján Novák) je typu string.
Premenná $pokus (hodnota: 1) je typu boolean.
Pozn.: Existujú aj funkcie is_string, is_array()... (str.31).
02_09 Sčítanie jabĺk a hrušiek
$vysledok = "7 jablk" + "12 hrušiek";
print $vysledok
19
02_10 Spojenie jabĺk a hrušiek
$vysledek = "7 jabĺk ". "12 hrušiek";
print $vysledek
7 jabĺk 12 hrušiek
JK: medzera za jablkami je súčasťou prvého z reťazcov
02_12 Rozdiel medzi "(uvodz.) a '(apostr.)
$n = 19;
$d = 2.3;
$str1 = "text";
$str2 = "Zobrazíme čísla $n a $d a reťazec \"$str1\".";
$str3 = 'Zobrazíme čísla $n a $d a reťazec \"$str1\".';
print $str2." --- ".$str3;
Zobrazíme čísla 19 a 2.3 a reťazec "text". --- Zobrazíme čísla $n a $d a reťazec \"$str1\".
02_14 Priezvisko - dve varianty
$priezvisko = "Novák";
print "Manželka muža s priezviskom $priezvisko je pani {$priezvisko}ová.";
print " Zdravíme pani ${priezvisko}ovú.";
Manželka muža s priezviskom Novák je pani Nováková. Zdravíme pani Novákovú.
02_16 Väčší text aj s uvodz. a html kódom (3 varianty)
print "\"Babylonská rybka,\" odriekal ticho Stopárov Sprievodca po Galaxii, \"je malá, žltá, trocha se podobá pijavici.\"< br /> ";
print '"Babylonská rybka," odriekal ticho Stopárov Sprievodca po Galaxii, "je malá, žltá, trocha se podobá pijavici."< br /> ';
$str = <<< EOD
"Babylonská rybka," odriekal ticho Stopárov Sprievodca po Galaxii, "je malá, žltá, trocha se podobá pijavici."< br />
EOD;
print $str;
"Babylonská rybka," odriekal ticho Stopárov Sprievodca po Galaxii, "je malá, žltá, trocha se podobá pijavici."
"Babylonská rybka," odriekal ticho Stopárov Sprievodca po Galaxii, "je malá, žltá, trocha se podobá pijavici."
"Babylonská rybka," odriekal ticho Stopárov Sprievodca po Galaxii, "je malá, žltá, trocha se podobá pijavici."
02_17 Nahraď časť reťazca
print substr_replace('Babylonská rybka je malá a žltá.', 'čierna.', 29);
print "<br />";
print str_replace("rybka","rybička","Babylonská rybka je malá a žltá.");
Babylonská rybka je malá a čierna.
Babylonská rybička je malá a žltá.
02_21 Fu wordwrap [zalomenie riadkov]
$text = "\"Babylonská rybka\", odriekal ticho Stopárov sprievodca po Galaxii,
\"je malá, žltá, trocha sa podobá na pijavicu. Je to asi nejpodivnejší
tvor vo vesmíre. Živí sa myšlienkovou energiou, prijímanou nie od
svojho nositeľa, ale z okolia. Má schopnosť absorbovať a spracovávať
na živiny všetky podvedomé frekvencie tejto myšlienkovej energie\".";
$newtext = wordwrap($text, 40, "<br />");
echo "$newtext\n";
"Babylonská rybka", odriekal ticho
Stopárov sprievodca po Galaxii,
"je
malá, žltá, trocha sa podobá na
pijavicu. Je to asi nejpodivnejší
tvor vo vesmíre. Živí sa
myšlienkovou energiou, prijímanou nie
od
svojho nositeľa, ale z okolia. Má
schopnosť absorbovať a spracovávať
na živiny všetky podvedomé frekvencie
tejto myšlienkovej energie".
02_22 Dĺžka reťazca
$dlzka = strlen("\"Babylónska rybka,\" odriekal tíško Stopárov sprievodca po Galaxii");
echo "Dĺžka reťazca je $dlzka znakov.";
Dĺžka reťazca je 69 znakov.
02_23 Nájdenie textu v reťazci
$retazec = "Babylonska rybka, odriekal tíško Stopárov sprievodca po Galaxii";
//0123456789012345678901234567890123456789012345678901234567890
//0 1 2 3 4 5 6
$pozicia = strpos($retazec, "Stopárov");
echo "Hľadané slovo začína na pozícii $pozicia.";
Hľadané slovo začína na pozícii 35.
!?! Znak s diakritikou, napr "á" počíta za 2 znaky !?!
02_24 Časť reťazca
$retazec = "Jurkovic Brno 321 00 dodavatel";
//0123456789012345678901234567890123456789012345678901234567890
//0 1 2 3 4 5 6
$psc = substr($retazec, 40, 6);
echo "PSČ: $psc"
PSČ: 321 00
!?! POTOR: Znaky s diakritikou počíta za 2 ?!?
02_25 Podmienky a logické operátory
Porovnávacie:
==
!=
nerovnosť
<>
nerovnosť
===
identita
!===
>
<
<=
>=
Logiské:
!
keď podmienka nie je pravdivá
AND
keď obe podmienky sú TRUE, uplatní sa
&&
(ekvivalent AND)
OR
keď jedna z podmienok je TRUE, uplatní sa
||
(ekvivalent OR)
XOR
keď obe podmienky sú TRUE, neuplatní sa
if (date("A")=="AM")
{echo "Máme ".date("A").". Príjemné predpoludnie.";}
else
{echo "Máme ".date("A").". Príjemné popoludnie.";}
Máme PM. Príjemné popoludnie.
02_26 Cykly FOR a FOREACH (= prečítanie poľa)
for($i=1; $i<=5; $i++)
echo "Opakovaný text.<br />";
Opakovaný text.
Opakovaný text.
Opakovaný text.
Opakovaný text.
Opakovaný text.
for($i=1; $i<=5; $i++):
echo "Opakovaný text.<br />";
endfor
Opakovaný text.
Opakovaný text.
Opakovaný text.
Opakovaný text.
Opakovaný text.
for ($i = 1; $i <= 10; print $i."<br />", $i++);
1
2
3
4
5
6
7
8
9
10
$mesiace = array('január', 'február', 'marec', 'apríl', 'máj', 'jún');
foreach ($mesiace as $cislo => $mesiac)
{
print "$cislo: $mesiac<br />";
}
0: január
1: február
2: marec
3: apríl
4: máj
5: jún
$arr = array(1=>'január', 'február', 'marec', 'apríl', 'máj', 'jún');
foreach ($arr as $key => $value) {
echo "Kľúč: $key; Hodnota: $value<br />\n";
}
Kľúč: 1; Hodnota: január
Kľúč: 2; Hodnota: február
Kľúč: 3; Hodnota: marec
Kľúč: 4; Hodnota: apríl
Kľúč: 5; Hodnota: máj
Kľúč: 6; Hodnota: jún
/* foreach príklad 3: kľúč a hodnota */
$a = array ("jan"=>'január',
"feb"=>'február',
"mar"=>'marec',
"apr"=>'apríl',
"maj"=>'máj',
"jun"=>'jún');
foreach($a as $key => $value) {
print "\$a[$key]: $value.<br />";
}
$a[jan]: január.
$a[feb]: február.
$a[mar]: marec.
$a[apr]: apríl.
$a[maj]: máj.
$a[jun]: jún.
/* foreach príklad 4: viacrozmerné pole */
$b[0][0] = "a";
$b[0][1] = "b";
$b[1][0] = "y";
$b[1][1] = "z";
foreach($b as $key1 => $value1) {
foreach ($value1 as $key2 => $value2) {
print "\$b[$key1][$key2]: $value2<br />\n";
}
}
$b[0][0]: a
$b[0][1]: b
$b[1][0]: y
$b[1][1]: z
/* foreach príklad 5: dynamické pole */
foreach(array(1, 2, 3, 4, 5) as $v) {
print "$v<br />\n";
}
1
2
3
4
5
02_27 Násilné prerušenie: "DIE alebo EXIT" je nanič, starý dobrý "BREAK" prerušuje len cyklus
JK-pozn.:
- Keď zlyhá napr. pripojenie k databáze, načo ísť v kóde ďalej.
- Dobrá aplikácia pri prerušení privolá obsluhu (e-mail / SMS správcovi).
do
{
$meno_suboru = './cesta/k/udajom/12_03_filmy.xml';
@$subor = fopen($meno_suboru, 'r');
// @$subor = fopen($meno_suboru, 'r') or die ("Súbor ($meno_suboru) nemožno otvoriť.");
break;
echo "Tento riadok nebude zobrazený.";
} while (false);
echo "Pokračujeme...";
Pokračujeme...
02_28 Test regulárnych výrazov
02_28.php02_jk01 Dátum z MySQL po EU
$date=Date("Y-m-d");
echo "$date<br />";
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Invalid date format: $date";
}
2025-04-04
Pozor: príkaz ereg je zastaralý a nové som nič neodladil. JK 3/2020
06_31 Pole $_SERVER
print $_SERVER['PHP_SELF'];
/lackojkedit/01_zaklady/00_index_jk.php
print $_SERVER['REQUEST_URI'];
/lackojkedit/01_zaklady/00_index_jk.php
print $_SERVER[HTTP_HOST];
teoriaphp.spevy.site
$cesta_k_prikazu = "http://".$_SERVER[HTTP_HOST].$_SERVER['REQUEST_URI'];
http://teoriaphp.spevy.site/lackojkedit/01_zaklady/00_index_jk.php
print_r($_SERVER); Array
(
[HTTPS] => on
[GEOIP_COUNTRY_CODE] => US
[UNIQUE_ID] => Z_AO_vzBYrbjbXIiVEWI1AAAAB0
[DOCROOT] => /data/7/8/78c5cb5f-aa1a-419a-afb6-09b10ca182e9/spevy.site/sub/teoriaphp
[filter-errordocs] =>
[HTTP_HOST] => teoriaphp.spevy.site
[HTTP_X_REAL_IP] => 18.219.74.193
[HTTP_X_FORWARDED_FOR] => 18.219.74.193, 18.219.74.193
[HTTP_X_FORWARDED_PROTO] => https
[HTTP_HTTPS] => 1
[HTTP_X_PROXY_IP] => 10.20.5.1
[HTTP_ACCEPT] => */*
[HTTP_USER_AGENT] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
[HTTP_ACCEPT_ENCODING] => gzip, br, zstd, deflate
[HTTP_WS_GEO_COUNTRY] => US
[HTTP_MAX_FORWARDS] => 7
[HTTP_X_FORWARDED_HOST] => teoriaphp.spevy.site
[HTTP_X_FORWARDED_SERVER] => teoriaphp.spevy.site
[HTTP_CONNECTION] => close
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache
[SERVER_NAME] => teoriaphp.spevy.site
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 443
[REMOTE_ADDR] => 18.219.74.193
[DOCUMENT_ROOT] => /data/7/8/78c5cb5f-aa1a-419a-afb6-09b10ca182e9/spevy.site/sub/teoriaphp
[REQUEST_SCHEME] => https
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /data/7/8/78c5cb5f-aa1a-419a-afb6-09b10ca182e9/spevy.site/sub/teoriaphp
[SERVER_ADMIN] => admin@websupport.sk
[SCRIPT_FILENAME] => /data/7/8/78c5cb5f-aa1a-419a-afb6-09b10ca182e9/spevy.site/sub/teoriaphp/lackojkedit/01_zaklady/00_index_jk.php
[REMOTE_PORT] => 34496
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /lackojkedit/01_zaklady/00_index_jk.php
[SCRIPT_NAME] => /lackojkedit/01_zaklady/00_index_jk.php
[PHP_SELF] => /lackojkedit/01_zaklady/00_index_jk.php
[REQUEST_TIME_FLOAT] => 1743785726.33
[REQUEST_TIME] => 1743785726
[argv] => Array
(
)
[argc] => 0
)
06_32.php
odosiela súbor na server a hlási správu 10_01 OOP Trieda...
class Kniha
{
protected $nazev; // členská premenná
// Konštruktor
function Kniha($sNazev="neznamy")
{
$this->nazev = $sNazev;
}
// členská metóda
function ZobrazNazev()
{
return $this->nazev;
}
// členská metóda
function VyhodnoceniUspesnosti()
{
// Kód metódy...
}
}
$nakup = new Kniha("Stopárov sprievodca po Galaxii");
print $nakup->ZobrazNazev();
Stopárov sprievodca po Galaxii
10_02 OOP Trieda - typy premenných (PHP 5)
class Reproduktor
{
public $nazev;
private $vyrobni_cena; //viditeľné iba vnútri triedy
protected $naklad; //viditeľné aj v childrens
// Konstruktor
function Reproduktor($sNazev, $dVyrobniCena=100.0, $nNaklad=10000)
{
$this->nazev = $sNazev;
$this->vyrobni_cena = $dVyrobniCena;
$this->naklad = $nNaklad;
}
// Metody
function ZobrazNazev() {return $this->nazev;}
function ZobrazVyrobniCenu() {return $this->vyrobni_cena;}
function ZobrazNaklad() {return $this->naklad;}
}
$nakup_reproduktora = new Reproduktor("EDIROL MA-20D",250.20, 100000);
print $nakup_reproduktora->nazev;
print "<br />";
print $nakup_reproduktora->ZobrazVyrobniCenu();
print "<br />";
print $nakup_reproduktora->ZobrazNaklad();
EDIROL MA-20D
250.2
100000
vzor súboru XML.12_02 Ten istý súbor, zobr. iba data
$dom = new DomDocument();
$dom->load("12_01_zakaznici.xml");
print $dom->saveXML();
Kucera Jan
Zaoralova 16
Brno
Krupickova Alena
Zelena 4
Rajhrad
JK: v zdrojovom kóde vidieť celú štruktúru XML,
v samostatnom súbore
12_02.php
ešte aj deklaráciu XML.12_03 Generovanie XML
print '<?xml version="1.0"?>'. "\n";
print "<filmy>\n";
$filmy = array(
array('cislo' => '1',
'nazev' => 'Dr. No',
'herec' => 'Connery',
'rok' => '1962'),
array('cislo' => '2',
'nazev' => 'From Russia With Love',
'herec' => 'Connery',
'rok' => '1963'),
array('cislo' => '3',
'nazev' => 'Goldfinger',
'herec' => 'Connery',
'rok' => '1964'),
);
foreach ($filmy as $film)
{
print " <film>\n";
foreach($film as $znacka => $data)
{
print " <$znacka>".htmlspecialchars($data)."</$znacka>\n";
}
print " </film>\n";
}
print "</filmy>\n";
1
Dr. No
Connery
1962
2
From Russia With Love
Connery
1963
3
Goldfinger
Connery
1964
JK: v zdrojovom kóde vidieť celú štruktúru XML,
v samostatnom súbore
12_03.php
ešte aj deklaráciu XML.12_10 SimpleXML (od PHP 5) zobrazenie dát XML súboru
1
Dr. No
1962
2
From Russia With Love
1963
3
Goldfinger
1964
1
Julka
1994
2
Zuzka
1996
JOJO2 Pre home
JOJO Dana
Naco mi je ta zahradka, ked nemam v nej co trhat.
Rybari sa snazili, aby nasli a chytili vela ryb.
JOJO Juraj
fero refo fero refo fero refo fero refo fero refo fero refo
jojo jojo jojo jojo jojo jojo jojo jojoj ojoj