zxz 05.02.2022 14:10
Predmet:Jedinstveni id

Možda postoje situacije u kojima morate generirati jedinstveni niz. Neki ljudi koriste funkciju md5() za ovo, iako nije baš namijenjena za ovu svrhu:
PreuzmiIzvorni kôd (PHP):
  1. echo uniqid() . "<br>";
  2. echo uniqid('neki string_') . "<br>";
  3. echo uniqid('nekistring_',true) . "<br>";

Možda ćete primijetiti da iako su stringovi jedinstveni, izgledaju slično za prvih nekoliko znakova. To je zato Å¡to je generirani niz povezan sa vremenom servera. Ovo zapravo ima lijepu nuspojavu, jer svaki novi generirani ID dolazi kasnije po abecednom redu, tako da se može sortirati.

Da biste smanjili Å¡anse da dobijete duplikat, možete proslijediti prefiks ili drugi parametar za povećanje entropije:

zxz 05.02.2022 14:35
Predmet:Pretvaranje variabli u string

Postoje dva nacina pretvaranja variabli u string:
-serialize()
PreuzmiIzvorni kôd (PHP):
  1. // a complex array
  2. $var = array(
  3.         'pozdrav',
  4.         433,
  5.         array(1,'niz u nizu'),
  6.         'prvi niz'
  7. );
  8.  
  9. //konvertovanje u string
  10. $string = serialize($var);
  11.  
  12. echo $string;
  13. //nazad u variable
  14. $nova_var = unserialize($string);
  15.  
  16. print_r($nova_var) . "<br>";
  17. echo $nova_var[0] . "<br>";
  18. echo $nova_var[2][1] . "<br>";

-json_decode()
// a complex array
PreuzmiIzvorni kôd (PHP):
  1. $string = json_encode($myvar);
  2. $var = array(
  3.         'pozdrav',
  4.         433,
  5.         array(1,'niz u nizu'),
  6.         'prvi niz'
  7. );
  8. $nova_var = json_decode($string);
  9. print_r($nova_var) . "<br>";
  10. echo $nova_var[0] . "<br>";
  11. echo $nova_var[2][1] . "<br>";
[/code]

zxz 05.02.2022 14:55
Predmet:Kompresovanje stringa

String mozemo kompresovati bez da to radimo nekim arhiverom:
PreuzmiIzvorni kôd (PHP):
  1. $string ="Obratite paznju na desnoj strani \"Izdvojeno\", tu se slucajno odabrane teme vrte pa je moguce da one trzaju kod skrolovanja.
  2. Ako imate volje mozete upisati;
  3. -broj clanova koji su bili prisutni kad vam je blokiralo
  4. -vrijeme u kojem vam se desavao problem
  5. -browser koji koristite ";
  6.  
  7. $kompresvano = gzcompress($string);
  8.  
  9. echo "Orginalna velicna: ". strlen($string). "<br>";
  10. echo  "<b>Kompresovano:</b><br>" . $kompresvano . "<br>";
  11.  
  12.  
  13.  
  14. echo "Kompresovana veli
  15. ina: ". strlen($kompresvano). "<br>";
  16.  
  17.  
  18. $original = gzuncompress($kompresvano);
  19.  
  20. echo  "<b>Original:</b><br>" . $original . "<br>";

zxz 05.02.2022 18:16
Predmet:Vrijeme trajanja procesa

Ovo može izgledati trivijalno. Mozete dodati kod na dno skripte i on se pokreće prije nego Å¡to zavrÅ¡i. Međutim, ako ikada pozovete funkciju exit(), taj kod se nikada neće pokrenuti. Takođe, ako dođe do fatalne greÅ¡ke, ili ako korisnik prekine skriptu (pritiskom na dugme Stop u pretraživaču), opet se možda neće pokrenuti.

Kada koristite register_shutdown_function(), vaÅ¡ kod će se izvrÅ¡iti bez obzira zaÅ¡to je skripta prestala da se izvodi:
PreuzmiIzvorni kôd (PHP):
  1. $start_time = microtime(true);
  2.  
  3.  
  4. // do some stuff
  5. // ...
  6.  
  7.  
  8. function procedura() {
  9.         global $start_time;
  10.  
  11.         echo "trajalo je: ".
  12.                         (microtime(true) - $start_time).
  13.                         " sekundi.";
  14. }

zxz 09.02.2022 15:04
Predmet:eval funkcija

Funkcija eval() postoji u vecini programskih jezika.
ova funkcijaobradjuje string kao PHP kod.
Niz mora biti važeći PHP kod i mora se zavrÅ¡avati tačkom i zarezom.
Napomena: Naredba return će odmah prekinuti evaluaciju niza.

Ova funkcija može biti korisna za pohranjivanje PHP koda u bazu podataka.

PreuzmiIzvorni kôd (PHP):
  1. <?php
  2. $godine = '45';
  3. $name = 'Bogoljub';
  4. $str = 'Moje ime je: $name a imam $godine godina<br>';
  5. echo $str;
  6. eval("\$str = \"$str\";");
  7. echo $str;
  8. eval( '$str = (20 * 5 - 3);' );
  9. echo "iznos je:" . $str;
  10. ?>

zxz 09.02.2022 17:37
Predmet:Zadnji dan u mjeeccu

PreuzmiIzvorni kôd (PHP):
  1. $datum= "17-11-2022";
  2. echo date("t-m-Y", strtotime($datum)). "<br>";
  3.  
  4. $date = new DateTime('17-11-2022');
  5. $date->modify('last day of this month');
  6. echo $date->format('d-m-Y'). "<br>";
  7. echo cal_days_in_month(CAL_GREGORIAN, 11, 2022). "<br>";

zxz 09.02.2022 21:48
Predmet:Broj iz stringa

Primjer kako izdvojiti brjeve koji se nalaze u nekom stringu.
PreuzmiIzvorni kôd (PHP):
  1. $string = 'Imam 10 godina staza i platu 1000 BAM  as star sam 50 godina';
  2. preg_match_all('!\d+!', $string, $brojevi);
  3.  
  4. foreach ($brojevi[0] as $value)
  5. {
  6.   echo "$value <br>";
  7. }

zxz 04.04.2022 20:15
Predmet:VIsedimenzionalni niz array_chunk

Sintaksa
array_chunk (niz, veličina, kljuc)
niz    -Određuje niz koji će se koristiti
veličina-Određuje veličinu segmenta
cačuvati kljuc (Neobavezno) - Moguće vrijednosti:
istina - čuva ključeve
lažno - Zadano. Reindeksira kljuceve

Primjer:
PreuzmiIzvorni kôd (PHP):
  1. $token_array = array('audi',
  2. 'tojota',
  3. 'mercedes',
  4. 'ford',
  5. 'opel',
  6. 'fiat',
  7. 'datsun',
  8. 'volvo',
  9. 'golf',
  10. 'olimpija',
  11. 'volga',
  12. 'lada');
  13.  
  14. print_r(array_chunk($token_array,4));

zxz 10.04.2022 21:45
Predmet:Ekstrakcija niza u variable

PreuzmiIzvorni kôd (PHP):
  1. <?php
  2. $a = "nista";
  3. $my_array = array("a" => "jedan","b" => "dva", "c" => "tri");
  4. extract($my_array);
  5. echo "\$a = $a; \$b = $b; \$c = $c<br>";
  6. print_r($my_array);
  7. ?

zxz 29.05.2023 15:33
Predmet:Ucitavanje slike na mapu

PreuzmiIzvorni kôd (PHP):
  1. <?php
  2. // Putanja do vase JPEG slike
  3. $slika = 'slika.jpg';
  4.  
  5. // Provjera postojanja EXIF podataka u slici
  6.         if (exif_imagetype($slika) === IMAGETYPE_JPEG && function_exists('exif_read_data'))
  7.         {
  8.         // Citanje EXIF podataka iz slike
  9.         $exif = exif_read_data($slika);
  10.  
  11.         // Provjera postojanja geografskih koordinata (lokacije) u EXIF podacima
  12.         if (isset($exif['GPSLatitude']) && isset($exif['GPSLongitude'])) {
  13.         // Dekodiranje geografskih koordinata
  14.         $latitude = $exif['GPSLatitude'];
  15.         $longitude = $exif['GPSLongitude'];
  16.  
  17.         // Dekodiranje smjera
  18.         $latitudeRef = $exif['GPSLatitudeRef'];
  19.         $longitudeRef = $exif['GPSLongitudeRef'];
  20.  
  21.         // Pretvaranje geografskih koordinata u decimalni format
  22.         $latitudeDecimal = convertToDecimalDegrees($latitude, $latitudeRef);
  23.         $longitudeDecimal = convertToDecimalDegrees($longitude, $longitudeRef);
  24.  
  25.         // Ispis geografskih koordinata
  26.         //echo "Lokacija: Latitude: $latitudeDecimal, Longitude: $longitudeDecimal";
  27.         }
  28.         else
  29.         {
  30.         echo "Nema dostupnih geografskih koordinata u EXIF podacima slike.";
  31.         }
  32.         } else
  33.         {
  34.         echo "Nevazeca slika ili nedostaje podrska za citanje EXIF podataka.";
  35.         }
  36.  
  37. // Funkcija za pretvaranje geografskih koordinata iz stupnjeva, minuta i sekundi u decimalni format
  38.         function convertToDecimalDegrees($coord, $hemisphere)
  39.         {
  40.                 $degrees = count($coord) > 0 ? $coord[0] : 0;
  41.                 $minutes = count($coord) > 1 ? $coord[1] : 0;
  42.                 $seconds = count($coord) > 2 ? $coord[2] : 0;
  43.                 $degrees= eval("return $degrees;");
  44.                 $minutes = eval("return $minutes;");
  45.                 $seconds = eval("return $seconds;");
  46.  
  47.                 $sign = ($hemisphere == 'W' || $hemisphere == 'S') ? -1 : 1;
  48.                 $decimal = $sign * ($degrees + ($minutes / 60) + ($seconds / 3600));
  49. $string = "2 + 3 * 5"; // String koji sadrzi matemati
  50. ku operaciju
  51.  
  52. $result = eval("return $string;"); // Izvrsavanje matematicke operacije
  53.  
  54. //echo $result; // Ispis rezultata
  55.  
  56.                 return $decimal;
  57.        
  58.         }
  59.  
  60. ?>
  61. <!DOCTYPE html>
  62. <html>
  63. <head>
  64.     <title>Prikaz mape</title>
  65.     <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
  66.     <style>
  67.         #map {
  68.             height: 600px;
  69.             width: 1300px;
  70.         }
  71.     </style>
  72. </head>
  73. <body>
  74.         <form>
  75.         <input type="text"  id="la" value="<?= $latitudeDecimal; ?>"/>
  76.         <input type="text"  id="lo" value="<?= $longitudeDecimal;?>"/>
  77.     <div id="map"></div>
  78.     <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
  79.     </form>
  80. </body>
  81. </html>
  82.  
  83.    
  84.     <script>
  85.  
  86.         // Kreiranje mape
  87.         var la=document.getElementById("la").value;
  88.         var lo=document.getElementById("lo").value;
  89.         var map = L.map('map').setView([la, lo], 10);
  90.  
  91.         // Dodavanje plocica mape
  92.         L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  93.         {
  94.             attribution: '© <a href="https://openstreetmap.org">otvori</a> contributors'
  95.         }).addTo(map);
  96.  
  97.         // Definiranje ikone (slike) za marker
  98.         var myIcon = L.icon
  99.             (
  100.                 {
  101.                 iconUrl: 'slika.jpg',
  102.                 iconSize: [38, 38],
  103.                 iconAnchor: [19, 38],
  104.                 popupAnchor: [0, -38]
  105.                 }
  106.         );
  107.  
  108.         // Dodavanje vase slike na kartu
  109.         var imageMarker = L.marker([la, lo], { icon: myIcon }).addTo(map);
  110.         imageMarker.bindPopup('Moj marker s slikom').openPopup();
  111.  
  112.                 //provjerava koji je taster misa pritisnut i mijenja velicinu slike na osnovu toga
  113.                 imageMarker.on
  114.                 ('mousedown', function()
  115.                     {
  116.                     var mis=event.button;
  117.                         if(mis==0)
  118.                         {
  119.                                 var n=2;       
  120.                                 }
  121.                                 else if(mis==2)
  122.                                 {
  123.                                 var n=0.5;     
  124.                                 }
  125.                                 else
  126.                                 {
  127.                                 var n=1;               
  128.                                 }
  129.                                 var x=myIcon.options.iconSize[0]*n ;
  130.                                 var y=myIcon.options.iconSize[1]*n ;
  131.                                 iconSize = [x, y];
  132.                                 iconAnchor = [30, 60];
  133.                                 popupAnchor = [0, -60];
  134.                                 myIcon.options.iconSize = iconSize;
  135.                                 myIcon.options.iconAnchor = iconAnchor;
  136.                                 myIcon.options.popupAnchor = popupAnchor;
  137.                                 imageMarker.setIcon(myIcon);                           
  138.                                
  139.                                
  140.                     }  
  141.  
  142.                 )
  143.     </script>
  144.