Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] formatowanie ciągu
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam,

jak mogę formatować statyczny ciąg znaków

dla przykładu

  1.  
  2. //Dane z textarea
  3. $dane = "ZAPAS MZ jabłka: 4t wiśnie: 2t truskawki:1t W PRZYGOTOWANIU jabłka 1t";


i chciał bym przerobić to na tabele

  1. <tr>
  2. <th>Zapas MZ</th>
  3. </tr>
  4. <tr>
  5. <td>jabłka:</td>
  6. <td>4t</td>
  7. </tr><tr>
  8. <td>wiśnie:</td>
  9. <td>2t</td>
  10. </tr><tr>
  11. <td>truskawki:</td>
  12. <td>1t</td>
  13. </tr>
  14. <tr>
  15. <th>W PRZYGOTOWANIU</th>
  16. </tr>
  17. <tr>
  18. <td>jabłka:</td>
  19. <td>1t</td>
  20. </tr>
in5ane
Jeśli wiesz, że zawsze będzie ta sama ilość danych (w takiej samej formie), to podziel to po prostu na tablicę przy pomocy funkcji explode dzieląc przez spacje. I wtedy masz wszystkie wyrazu w tablicy. Np. osobno będziesz "W" i "PRZYGOTOWANIU", ale to to tak to do komórki tabeli wrzucisz oba elementy tablicy. Problem mógłby być gdybyś miał np. raz "jabłka" a drugi raz "zielone jabłka". Wtedy nie wiedziałbyś że rozbiło string na tablicę z większą ilością elementów. Gdyby była ta opcja gorsza to czekają Cię wyrażenia regularne.
kreatiff
  1. $dane = "ZAPAS MZ jabłka: 4t wiśnie: 2t truskawki:1t W PRZYGOTOWANIU jabłka 1t";
  2.  
  3. $a = str_replace('ZAPAS MZ ', '', $dane);
  4. $a = trim(preg_replace('#\:\s+#u', ':', $a));
  5. $a = explode(' W PRZYGOTOWANIU ', $a);
  6.  
  7. foreach ( $a as &$w ) {
  8. $w = explode(' ', $w);
  9. }
  10. unset($w);
  11.  
  12. echo'<pre>',var_dump($a),'</pre>';

A z ataką tablicą będzie już łatwo to dalej obrobić.
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.