Mam skrypt który uruchamiam na 2 maszynach na jednej jest na adresie localhost/a/public/register na drugiej a.app/register co zrobić aby na obu maszynach $uri wykazywało /register ? bo w tej chwili na tej maszynie z localhost/a/public/register pokazuje $uri /a/public/register a tej z a.app jest /register
zmienną $uri mam zapisaną tak
$uri = $_SERVER['REQUEST_URI'];
http://www.php.net/echo http://www.php.net/array_reverse(http://www.php.net/explode("/", $string))[0];
http://www.php.net/echo http://www.php.net/pathinfo($string)['basename'];
Dzięki ale chyba nie bardzo działa bo zwraca mi tylko ostatni wyraz a nie o to chodziło.
To może inaczej bo może nie dość jasno pisałem problem.
mam ten sam serwis/adres uruchamiany z 2 lokalizacji
1. domena.pl/sciezka/do/folderu/x
2. localhost/abc/public/sciezka/do/folderu/x
pobieram uri poprzez $_SERVER['REQUEST_URI']
$uri = http://www.php.net/parse_url($_SERVER['REQUEST_URI'])['path']; if($_SERVER['SERVER_NAME']=='localhost') { $a = $uri; // tu zwraca '/abc/public/sciezka/do/folderu/x' } else { $a = $uri; // tu zwraca '/sciezka/do/folderu/x' } http://www.php.net/echo $a;
Ja nie wiem czy Cię dobrze rozumiem, ale skoro chcesz tylko URL_PATH, a nie chcesz tego co się wyświetla w URL przeglądarki, to może po prostu usuń to str_replace(). ?
$url = strl_replace('/abc/public', '', http://www.php.net/parse_url($url, PHP_URL_PATH));
Jakie to ograniczenia masz na maszynie lokalnej, że nie możesz pointować na katalog, który chcesz?
Sprawdź to:
$key = '/register'; $uri = 'localhost/a/public/register'; // or a.app/register $path = http://www.php.net/strstr($uri, $key); http://www.php.net/echo $path;
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)