[ revlo @ 13.02.2018. 17:05 ] @
Evo malo korisnog koda koji sam sad obradio, sve sugestije su dobrodošle, inače nameravam da ovaj kod koristim u svojim projektima. Nije bog zna šta, ali dobra fora.

Prvo, koja je ideja; Ideja mi je da napravim dobar cms ili framework i spasim buduće kreatore da razmisljaju u kom folderu im je sajt, koje varijable su dostupne, koje nisu i glavno pitanje, Sta ako korisnik unese neki cudan url, ne zelimo izvestaj o gresci, vec sve prosledjujemo u index.php

Zato sam koristio ove globalne varijable i sredio htaccess koji moze da razume svaki namerno pogresen url. Dakle:

.htaccess:

Code:

Options All -Indexes

<IfModule mod_rewrite.c>
 
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)$ index.php?path=$1

</IfModule>


Napomena, stavio sam -Indexes jer ne želim da mi se neko švrćka po folderima i fajlovima na sajtu. A u folder koji zelimo da predstavimo publici, smestimo .htaccess sa +Indexes.

Ovo je PHP kod:

Code:

<?php

function Vars() {

    $folder = $_SERVER['SCRIPT_NAME'];
    $folder = explode ('/', $folder);
    $folder = array_slice($folder, 0, -1);
    $folder = implode('/', $folder);
    $folder = $folder.'/';

    $lf = strlen($folder);

    $path = $_SERVER['REQUEST_URI'];
    $path = substr($path, $lf);
    $path = explode('/', $path);

    $vars[0] = $folder;
    $vars[1] = $path;

    return $vars;
}

// korišćenje

$vars = Vars();

$root = $vars[0];

$var1 = $vars[1][0];
$var2 = isset($vars[1][1]) ? $vars[1][1] : '';
$var3 = isset($vars[1][2]) ? $vars[1][2] : '';
$var4 = isset($vars[1][3]) ? $vars[1][3] : '';

echo "Root folder: ".$root."<br>";
echo "Varijabla 1: ".$var1."<br>";
echo "Varijabla 2: ".$var2."<br>";
echo "Varijabla 3: ".$var3."<br>";
echo "Varijabla 4: ".$var4."<br>";
echo "itd...";

?>


Moguće je ugraditi kod u korisnu klasu, ali ono sto nisam pomenuo, ovaj kod mora biti prisutan u index.php, da li sa require ili direktno, sve jedno je. Dalji razvoj projekta podrazumeva da sve ubacujete u index.php i nema drugih headera i posebnih fajlova. I da, root folder se automatski namesta, ova dva fajla mozete staviti bilo gde u podfolder ili root, uvek varijable i root imaju istu vrednost, tj, onu koja odgovara.

### Ono što je bitno, spreman sam za komentare i poboljsanja ###
[ plus_minus @ 13.02.2018. 17:49 ] @
Eh, pa sad.. uzmi pa ga izgeekuj malo, jbga.
Ovako, npr ..

Code (php):

Class MyClass
{
static function Vars()
{
  (defined('DSP') OR define('DSP', DIRECTORY_SEPARATOR));
  $folder = implode(DSP,array_slice(explode(DSP,$_SERVER['SCRIPT_NAME']),0,-1)) .DSP;
  return [
    $folder, (explode (DSP,
      substr ($_SERVER['REQUEST_URI'],
        strlen ($folder)))
    )
  ];
}
}

// Korišćenje
echo print_r(MyClass::Vars(), true);

// ili
$vars = MyClass::Vars();

 


Šalu na stranu, sad ozbiljno ..

Za početak ..
mb_strlen i mb_substr ... zašto to fali ?

Kad na to odgovoriš, idemo dalje ..
[ revlo @ 13.02.2018. 17:59 ] @
mb_ fali jer nisam planirao da ubacujem u path, naša slova :) Ali nije zgoreg.

A ovo sa klasom, ok. poštujem :)
[ plus_minus @ 13.02.2018. 18:04 ] @
^^
TI - nisi planirao, ali, nisu svi kao ti.
I tebi je kažeš dosadio PHP na onoj drugoj temi, hoćeš nešto .. drugačije od PHP-a., al' ne znaš šta.

Znači, nije ti dosadio PHP. Sve i da si počeo sa Javom, isto.
Nije tebi još dosadno tu gde si započeo, nije..
[ revlo @ 13.02.2018. 18:21 ] @
:D ima da se radi. Najlepše zanimanje je "večiti student", temeljno prelazim gradivo, evo već deset godina :D