![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 1.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam następujący problem. Szukałem już jego rozwiązania na forum, ale jakoś mi się nie udało nic znależć.
Mam coś takiego
Czego potrzebuję? Informacji jakie wyrażenie regularne wstawić z miejsce ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Co chcę uzyskać? Chcę wrzucić do array'a $wynik dane zawarte w {} Innymi slowy chce zeby sie wyswietliło: array(2) { [0]=> string(7) "{a:1:1}" [1]=> string(7) "{b:1:1}" } Wie ktoś jak to zrobić ? Ten post edytował Nevanda 1.06.2007, 14:43:14 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 97 Pomógł: 0 Dołączył: 30.05.2007 Skąd: Kleszczów Ostrzeżenie: (0%) ![]() ![]() |
Dokładnego mechanizmu nie podam, bo znam bardzo słabo manipulowanie łańcuchami, ale podzielić sobie swój łańcuch za pomocą funkcji explode na mniejsze zaczynające się od {. Potem te mniejsze łańcuchy możesz obciąć w miejscu wystąpienia } i zwrócić do tablicy.
Kod $nowy_string = explode( '{' , $stary_string ); for( $i = 0; $i < count( $nowy_string ); $i++ ) { $nowy_string[$i] = substr( $nowy_string[$i] , 0 , 7 ); } Jakoś tak bym to zrobił, ale głowy nie dam że zadziała. Pisałem na szybko w pracy. EDIT: Poprawiłem w domu na: Kod <?php $ex = 'teksttekstteksttekst tekst: "{a:1:1}, teksttekstteksttekst tekst tekst {b:1:1} teksttekst"'; $nowy_string = explode( '{' , $ex ); for( $i = 1; $i < count( $nowy_string ); $i++ ) { $nowy_string[$i] = '{'.substr( $nowy_string[$i] , 0 , 6 ); } $nowy_string[0] = null; var_dump( $nowy_string ); ?> Działa jak należy ![]() Ten post edytował rasgan 1.06.2007, 15:53:56 -------------------- Szczęścia w mrokach...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 1.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nono. Tylko problem jest tego typu ze dane w { } mają różną długość (niekoniecznie 5 znaków)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 1.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myślę że to mogło by pomóc
co oznacza dowolny ciąg znaków pomiędzy { } ale bez { czyli rozróżni Ci kilka {} {} {} Hmmm.. nadal nie działa ( problem jest jeszcze w tym, ze znaki {} są znakami specjalnymi ) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze masz błąd w kodzie tzn nie zamknięty string
A po drugie wyrażenia regularne wstawia się w / /
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 1.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem. Ale i tak wynik zapytania mnie nie zadowala.
wypluwa coś takiego: "array(2) { [0]=> array(2) { [0]=> string(7) "{a:1:1}" [1]=> string(7) "{b:1:1}" } [1]=> array(2) { [0]=> string(5) "a:1:1" [1]=> string(5) "b:1:1" } }" Już sobie poradziłem, skorzystałem ze skryptu rasgan'a trochę tylko przerobiłem:
Działa, więc dziękuję wszystkim za pomoc ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem. Ale i tak wynik zapytania mnie nie zadowala. wypluwa coś takiego: "array(2) { [0]=> array(2) { [0]=> string(7) "{a:1:1}" [1]=> string(7) "{b:1:1}" } [1]=> array(2) { [0]=> string(5) "a:1:1" [1]=> string(5) "b:1:1" } }" Działa, więc dziękuję wszystkim za pomoc ![]()
i masz tylko to co chciałeś |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:01 |