Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyciąganie danych ze stringa
Forum PHP.pl > Forum > PHP
styryl
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

cudny
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
styryl
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ę?
cudny
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.