Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Parsowanie stringa do tabeli/dl
colachips
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.01.2009

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


Witam,

mam taki string
  1. $s = 'Powierzchnia użytkowa: 57.80 m?
  2. Powierzchnia netto: 57.80 m?
  3. Powierzchnia całkowita: 70.20 m?
  4. Powierzchnia zabudowy: 70.20 m?
  5. Kubatura: 299.90 m?
  6. Wysokość budynku: 5.10 m
  7. Szerokość budynku: 6.50 m
  8. Długość budynku: 10.70 m
  9. Min. wymiary działki: 14.57 x 17.74
  10. Kąt nachylenia dachu: 30 °';


Chciałbym teraz go przeparsować aby mieć coś takiego (ew. dl dd dt)
  1. <table>
  2. <tr>
  3. <td>Powierzchnia użytkowa</td>
  4. <td>57.80 m2</td>
  5. </tr>
  6. <tr>
  7. <td>Powierzchnia netto</td>
  8. <td>57.80 m2</td>
  9. </tr>
  10. ... itd.
  11. </table>


Chodzi o to, że mniej więcej mam blade pojecie jak to w teorii powinno wyglądać:
1. Należy w pętli przelecieć każdą linijkę stringa ( znaleźć "\n" ) - i tutaj właśnie leżę, bo nie wiem jak to osiągnąć *
2. Należy rozdzielić linię na dwie części, można wykorzystać znak ":", który rozdziela string w wymaganym miejscu za pomocją funkcji strstr()

* moje wypociny to coś takiego, ale to nie działa jak należy i nie wiem dlaczego:
  1. $offset = 0;
  2. while($offset < strlen($s)-$offset)
  3. {
  4. echo $offset.' - '.strpos($s, PHP_EOL, $offset).' | ';
  5. echo substr($s, $offset, strpos($s, PHP_EOL, $offset) ).'<br />';
  6. $offset =+ strpos($s, PHP_EOL, $offset) + 1;
  7. }


Niestety coś czynię źle ponieważ wynik jest niesatysfakcjonujący, co gorsza nie wiem jak to interpretować... (IMG:style_emoticons/default/sad.gif) Takie coś się pokazuje:
Kod
0 - 33 | Powierzchnia użytkowa: 57.80 m?
34 - 64 | Powierzchnia netto: 57.80 m? Powierzchnia całkowita: 70.20 m
65 - 100 | Powierzchnia całkowita: 70.20 m? Powierzchnia zabudowy: 70.20 m? Kubatura: 299.90 m? Wysoko?
101 - 134 | Powierzchnia zabudowy: 70.20 m? Kubatura: 299.90 m? Wysokość budynku: 5.10 m Szerokość budynku: 6.50 m Długość budynku:
135 - 156 | Kubatura: 299.90 m? Wysokość budynku: 5.10 m Szerokość budynku: 6.50 m Długość budynku: 10.70 m Min. wymiary działki: 14.57 x 17.74 Kąt nach


A więc tylko pierwszą linię dobrze "łamie", w następnych wszystko się sypie.

Pozdr.

Ten post edytował colachips 8.12.2012, 00:02:28
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Możesz skorzystać z gotowego explode, zamiast rozdzielać to ręcznie.

PS. Zanim zaczniesz rozdzielać po znaku nowej linii, upewnij się, że nie będziesz miał problemu z różnym sposobem prezentowania tego "znaku" przez różne systemy operacyjne.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:07