Ľ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: Logiské:
  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.:
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.php

02_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

12_01_zakaznici.xml

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