Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_match_all
Forum PHP.pl > Forum > Przedszkole
xsonic
Witam

Znowu się głowie a pewnie rozwiązanie jest proste... Jak za pomocą preg_match_all znaleźć i wyświetlić:

  1. <td> 45/58 </td>


Nie wiem jak ułożyć wzorzec żeby znalazło razem 45/58 a potem podzieliło na 45 i 58 wtrąciło je do tablicy bo znajdzie parę pasujących tz $table[0][1] $table[0][2]
żebym sobie to mógł potem do zmiennych wrzucić. Tylko z / się powtarza tak to ma potem wyglądać:

W tekście:
  1. <td> 45/51 </td>
  2. <td> 46/52 </td>
  3. <td> 47/53 </td>
  4. <td> 48/54 </td>

W tablicy:
  1.  
  2. 0
  3. 1=45
  4. 2=46
  5. 3=47
  6. 4=48
  7.  
  8. 1
  9. 1=51
  10. 2=52
  11. 3=53
  12. 4=54

Albo podobnie...

I jeszcze jedno żeby nie zaśmiecać jeśli w szukanym wzorcu jest " albo = to się komentuje jakoś? Bo i tu sie wysypuje...

Pozdrawiam Adrian
piotr.kazmierczak
  1. $matches = null;
  2. $string = '<td> 45/51 </td><td> 46/52 </td><td> 47/53 </td><td> 48/54 </td>';
  3. $returnValue = preg_match_all('/<td>(.*)\\/(.*)<\\/td>/', $string , $matches);
  4.  
  5. $firstNumbersArray = array();
  6. $secondNumbersArray = array();
  7.  
  8. if(count($matches)==3){
  9. foreach($matches[1] as $first){
  10. $firstNumbersArray[] = trim($first);
  11. }
  12.  
  13. foreach($matches[2] as $second){
  14. $secondNumbersArray[] = trim($second);
  15. }
  16. }


Nie wiem, czy dokładnie o to Ci chodziło. Otrzymasz 2 tablice w pierwszej liczby 45,46,47,48 w drugiej 51,52,53,54.
Można zrobić również bez trima robiąc regexpa z [0-9] by wyjmował jedynie liczby
xsonic
nie chce regexpa przymulony jest preg_match można tez wyjąć z tego po 1 liczbie dzięki...
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.