Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Usuwanie pierwszych znaków z ciągu, o różnej długości
Maq2007
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.06.2007

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


Witam,

mam problem, otóż muszę z przykładowego ciągu "abrakadabra" (zmienny) usunąć pierwsze znaki, z tym że są 4 możliwości (one są stałe) co to za znaki mają być usunięte:
1. test
2. php
3. abra
4. pomoc
Jak można zauważyć mają one inną długość, ale zawsze występują na początku ciągu. Chcę aby skrypt usunął jedno z tych czterech wyrażeń z początku ciągu jeśli wystąpi takowe na jego początku. Po prostu chcę aby z takiego "abrakadabra" zostało "kadabra" a nie samo "kad" jak to jest w przypadku użycia str_replace, natomiast substr wraz z strlen także odpadają z powodu różnej długości wyrażeń do usunięcia.

Teoretycznie mogę skorzystać z preg_match i wyrażenia regularnego, ale w takim przypadku będzie trzeba użyć także parę razy if wraz substr oraz strlen, co spowoduje raczej niepotrzebny rozrost kodu. Szukam raczej czegoś bardziej optymalnego ;]

Z góry dzięki za pomoc

Ten post edytował Maq2007 20.08.2009, 00:01:28
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A czemu nie str_replace ?
Go to the top of the page
+Quote Post
Maq2007
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.06.2007

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


z tego co się orientuję w str_replace nie wplecę wyrażenia regularnego ;p a przy kodzie typu
Kod
str_replace('abra', '', 'abrakadabra');
wyjdzie mi "kad" zamiast "kadabra". Chyba że czegoś nie wiem o jakimś magicznym parametrze do tej funkcji.

Ten post edytował Maq2007 19.08.2009, 23:56:16
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Aha no fakt nie pomyślałem.

Co do wyrażeń przecież możesz zrobić np.

/^(slowo|slowo2|slowo3).*$/
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Juz blisko (IMG:style_emoticons/default/smile.gif)

preg_replace( '/^(slowo|slowo2|slowo3)/', '', $text );
Go to the top of the page
+Quote Post
Maq2007
post
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.06.2007

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


@dr_bonzo - dzięki działa, wiedziałem że to można jakoś prościej zrobić;p
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:54