PHP, rewrite module

Pozdrav. Imam website na lokaciji:

http://localhost/prvi_path/drugi_path/

I sad, kako da napravim da skripta ispisuje sve sto se nalazi tu iza drugi_path/

npr, ako upisem:

http://localhost/prvi_path/drugi_path/test

Skripta ce ispisati: test

Probao sam ovako:

[php]$url = trim($_SERVER[‘REQUEST_URI’]);
$requests = explode(’/’, $url);

echo $requests[3];[/php]

Ali problem je, ako je websajt na nekoj drugoj lokaciji, naprimjer:

http://localhost/prvi_path/drugi_path/treci_path/test

Onda ce mi ispisati: treci_path, a ne “test”, sve dok nepromjenim $requests[3] u $requests[4]

Znaci kako da usmjerim sve sto je na trenutnoj lokaciji, sve zadano iza nje ispisuje.

Nadam se da kuzite :wink:

EDIT:

Rješeno, koristio sam:
[php]$url = basename(trim($_SERVER[‘REQUEST_URI’]));[/php]

Dobro ako jew riješeno, ali te upućujem da u kakvom tutotialu proučiš funkcije stripos i strripos.

Netrazim zadnji element u nizu, jer se iza ispisuju jos ostali…

EDIT:

Kod basename mi vraca sve normalno kad je uneseno ostalo, a kad nije vraca mi path ispred

znaci:

[php]
$url = pathinfo(trim($_SERVER[‘REQUEST_URI’]));
$requests = explode(’/’, $url[‘basename’]);

if (isset($requests[0]) && !empty($requests[0]))
{
echo $requests[0];
}[/php]

kad je: prvi_path/drugi_path/lokacija/neki_argument

vratit ce mi: neki_argument

a kad je: prvi_path/drugi_path/lokacija/

vratit ce mi: lokacija

:o

kad već koristiš mod_rewrite, zar ovako nešto nebi bilo jednostavnije…

stavi u .htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?$ index.php?p1=$1&p2=$2&p3=$3&p4=$4 [L]

http://localhost/prvi_path/drugi_path/lokacija/neki_argument

i sad jednostavno mozes pristupiti svakom parametru


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja