Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyciąganie danych ze stringa
styryl
post 15.03.2011, 12:02:46
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


Siema,

Jak się za to zabrać, mam string:

  1. #OK BOG 11-03-15 10:42 p1 33,97zl/wymiana pani o 11h musi wyjcs


i mam z niego wygrzebać: 33,97 - czyli cenę przy czym zmieniać się mogą w stringu:
1. Cały początek "#OK BOG 11-03-15 10:42 p1"
2. Cena, może wyglądac tak 33,97zl, 33,97zł, 33.97zl, 33.97zł
3. Tył też może się zmieniać "/wymiana pani o 11h musi wyjcs"

pzdr

Go to the top of the page
+Quote Post
cudny
post 15.03.2011, 12:21:21
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Podaj 5 możliwości zmiany stringa (najróżniejsze kombinacje) i czy to:" /wymiana pani o 11h musi wyjcs" zawsze jest po "/" i czy inne / moga wystąpi i ewentualnie gdzie...
I zacznij czytać o preg_match(); bo nie dam gotowca smile.gif


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
styryl
post 15.03.2011, 13:35:55
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


wymyśliłem narazie coś takiego:

  1. $a = explode("/", '#OK BOG 11-03-15 10:42 p1 33,97zl/wymiana pani o 11h musi wyjcs');
  2.  
  3. $b = explode(" ", $a['0']);
  4. $ile = count($b);
  5.  
  6. for ($i = 0; $i <= $ile; $i++) {
  7.  
  8. echo $b[$i].'<br>';
  9.  
  10. if(preg_match('/^[0-9]/', $b[$i]))
  11. {
  12. echo '<p>jest</p>';
  13. }
  14. else
  15. {
  16. echo '<p>nie ma</p>';
  17. }
  18.  
  19. }
  20.  


zwraca:

  1. #OK
  2.  
  3. nie ma
  4. BOG
  5.  
  6. nie ma
  7. 11-03-15
  8.  
  9. jest
  10. 10:42
  11.  
  12. jest
  13. p1
  14.  
  15. nie ma
  16. 33,97zl
  17.  
  18. jest


Jak to teraz doprecyzować?

dodałem do wyrażenia: /^[0-9].*[,\\.]/ czy to załatwi sprawę?

Ten post edytował styryl 15.03.2011, 13:39:31
Go to the top of the page
+Quote Post
cudny
post 15.03.2011, 13:53:09
Post #4





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Napisałem ci żebyś podał kilka przykładów jak może się to zmieniać i czy / może wystąpić raz czy kilka razy i w których miejscach - domyślam się że to co znajduje się za / to komentarz użytkownika więc pewnie może się tam znajdować kilka razy / czyli np. /pani1/pani2/pani3 wychodzą razem smile.gif wtedy twój explode nie zadziała.
A co do:
/^[0-9].*[,\\.]/ czy to załatwi sprawę?
to proponuję /[0-9]+/
Daj kilka przykładów to będziemy myśleć - i to takich jakie mogą się zdarzyć i wymyśl takie mało prawdopodobne ale realne - pomyślimy smile.gif
Poza tym można w jednym preg_match(); wydobyć wszystkie info smile.gif nazywając poszczególne wyrażenia (podpowiedź - (?<zloty>([zZ]{1}[lłLŁ]{1})) )
Artykuł pomocniczy smile.gif nic lepszego nie znalazłem jeszcze tongue.gif pomimo że często używam regexp to korzystam z tej "ściągi" biggrin.gif
http://www.piotrosz.aspnet.pl/post/Wyrazen...-sciagawka.aspx

Acha - tutaj będziesz używał raczej preg_match_all(); biggrin.gif

Ten post edytował cudny 15.03.2011, 13:53:54


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
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: 14.08.2025 - 06:12