Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wycinanie słowa z ciągu znaku
TakiTaki
post 17.03.2022, 23:49:50
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.08.2021

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


Cześć,

Mam ciąg

../test1/test2/i28yrhnfs89a0idklaofi9aj
.434dfdsa/test1/test2/i28yrfsafsaghjkghmdklaofi9aj

W jaki sposób mogę wyciąć "test2" z tego ciągu? zawsze liczyłem ilość znaków i na tej podstawie wycinałem od końca lub od początku. Tutaj niestety nie jestem w stanie tego zrobić ze względu na różną długość łańcucha.

Jedyne co mi przychodzi do głowy to liczyć "/" i wyciąć odpowiednie słowo. Pytanie jeszcze jak zabezpieczyć się gdy ciąg wygląda ../test1/test2 i nie ma na końcu / ?
Go to the top of the page
+Quote Post
trueblue
post 18.03.2022, 09:37:35
Post #2





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


https://www.php.net/manual/en/function.explode.php


--------------------
Go to the top of the page
+Quote Post
vokiel
post 18.03.2022, 10:23:40
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


https://www.php.net/manual/en/function.preg-replace.php

https://www.php.net/manual/en/function.str-replace.php


--------------------
Go to the top of the page
+Quote Post
Salvation
post 18.03.2022, 17:25:04
Post #4





Grupa: Zarejestrowani
Postów: 396
Pomógł: 71
Dołączył: 15.07.2014

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


Podbijam funkcję preg_replace()
Go to the top of the page
+Quote Post
trueblue
post 18.03.2022, 19:36:28
Post #5





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


A ja podbiję explode:

  1. $a = '.434dfdsa/test1/test2/i28yrfsafsaghjkghmdklaofi9aj';
  2. $b = ['test2'];
  3. $result = implode('/', array_diff(explode('/', $a), $b));


--------------------
Go to the top of the page
+Quote Post
viking
post 19.03.2022, 09:02:17
Post #6





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. $a = '.434dfdsa/test1/test2/i28yrfsafsaghjkghmdklaofi9aj/test2';
  2. echo str_replace(['test2/', '/test2'], '', $a);


--------------------
Go to the top of the page
+Quote Post
trueblue
post 19.03.2022, 09:48:27
Post #7





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Nie zadziała, jeśli w ścieżce będzie string np. "/test23".


--------------------
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: 21.06.2025 - 06:00