Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP] obcięcie stringa

Napisany przez: slawekpiotr 5.02.2024, 06:33:24

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

  1. $uri = $_SERVER['REQUEST_URI'];


na maszynie z domeną a.app mam przypisaną ścieżkę /a/public/ do tej domeny, na drugiej maszynie z powodu ograniczeń nie mogę stworzyć domeny a.app

Napisany przez: trueblue 5.02.2024, 08:20:45

  1. http://www.php.net/echo http://www.php.net/array_reverse(http://www.php.net/explode("/", $string))[0];

lub
  1. http://www.php.net/echo http://www.php.net/pathinfo($string)['basename'];

Napisany przez: slawekpiotr 5.02.2024, 13:20:43

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']

  1. $uri = http://www.php.net/parse_url($_SERVER['REQUEST_URI'])['path'];
  2. if($_SERVER['SERVER_NAME']=='localhost') {
  3. $a = $uri; // tu zwraca '/abc/public/sciezka/do/folderu/x'
  4. } else {
  5. $a = $uri; // tu zwraca '/sciezka/do/folderu/x'
  6. }
  7. http://www.php.net/echo $a;

pytanie co zrobić aby zmienna $uri w każdym z powyższych przypadków tj na localhoście i poza localhostem zwracała z tego stringa /sciezka/do/folderu/x
/sciezka/do/folderu/x - będzie dynamiczna. Krótko mówiąc chcę w przypadku localhosta wyciąć "/abc/public" z początku albo może pierwszy public i wszystko co przed nim

Napisany przez: Tomplus 5.02.2024, 14:15:23

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(). ?

  1. $url = strl_replace('/abc/public', '', http://www.php.net/parse_url($url, PHP_URL_PATH));


Napisany przez: Salvation 7.02.2024, 11:22:34

Jakie to ograniczenia masz na maszynie lokalnej, że nie możesz pointować na katalog, który chcesz?

Napisany przez: Malinaa 12.02.2024, 21:17:50

Sprawdź to:

  1. $key = '/register';
  2. $uri = 'localhost/a/public/register'; // or a.app/register
  3.  
  4. $path = http://www.php.net/strstr($uri, $key);
  5.  
  6. http://www.php.net/echo $path;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)