Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] obcięcie stringa
slawekpiotr
post 5.02.2024, 06:33:24
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 22.01.2020

Ostrzeżenie: (0%)
-----


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

Ten post edytował slawekpiotr 5.02.2024, 06:36:41
Go to the top of the page
+Quote Post
trueblue
post 5.02.2024, 08:20:45
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. echo array_reverse(explode("/", $string))[0];

lub
  1. echo pathinfo($string)['basename'];


--------------------
Go to the top of the page
+Quote Post
slawekpiotr
post 5.02.2024, 13:20:43
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 22.01.2020

Ostrzeżenie: (0%)
-----


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 = 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. 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

Ten post edytował slawekpiotr 5.02.2024, 13:35:14
Go to the top of the page
+Quote Post
Tomplus
post 5.02.2024, 14:15:23
Post #4





Grupa: Zarejestrowani
Postów: 1 838
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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', '', parse_url($url, PHP_URL_PATH));

Go to the top of the page
+Quote Post
Salvation
post 7.02.2024, 11:22:34
Post #5





Grupa: Zarejestrowani
Postów: 344
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Jakie to ograniczenia masz na maszynie lokalnej, że nie możesz pointować na katalog, który chcesz?
Go to the top of the page
+Quote Post
Malinaa
post 12.02.2024, 21:17:50
Post #6





Grupa: Zarejestrowani
Postów: 518
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Sprawdź to:
  1. $key = '/register';
  2. $uri = 'localhost/a/public/register'; // or a.app/register
  3.  
  4. $path = strstr($uri, $key);
  5.  
  6. echo $path;


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 23:18