Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyciąganie danych z ciągu znaków
Ulysess
post 18.09.2010, 10:17:21
Post #1





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


witam mam tabele w której wiersze wyglądają tak:

  1. <tr id="tlo_piaskowe_czarne" align="center">
  2. <td height="20">1.</td>
  3. <td><b><font color="#FF9900">Imie</font></b></td>
  4. <td><b>30</b></td>
  5. <td>600</td>
  6. </tr>


chciałbym wszystkie dane z każdego wiersza wyciągnąć i przypisać do np zmiennej $a

wiem że mógłbym każdy wiersz wyciągnąć np w taki sposób ->
  1. preg_match_all("|<tr>(.*)</tr>|U",$tabela,$wiersz,PREG_PATTERN_ORDER);


ale w takim przypadku mam cały wiersz a chciałbym jeszcze wyciągnąć dane takie jak "Imie","30","600"

z góry dziękuje za pomoc smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
teherty
post 18.09.2010, 10:38:42
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 4
Dołączył: 17.05.2009

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


strip_tags
Powodzenia


--------------------
Go to the top of the page
+Quote Post
Ulysess
post 18.09.2010, 10:45:38
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


właśnie sam na to wpadłem ale przecież zostaje text a nie tablica.. dodatkowo napotkałem na inny problem.. otóż
  1. preg_match_all("|<tr id=\"tlo_piaskowe_czarne\" align=\"center\">(.*)</tr>|U",$page,$dane,PREG_PATTERN_ORDER);

zapomniałem że muszę podać cały znacznik TR nie tylko <tr> ale z racji tego że są tam "" więc dodałem backslashe ale nie działało więc postanowiłem się temu przyjrzeć i zrobiłem tak:
  1. $q = '<tr id=\"tlo_piaskowe_czarne\" align=\"center\">(.*)</tr>';
  2. echo $q;

i okazało się że w źródle HTMLowym są backslashe.. jak zrobić żeby nie wywalało błędu w linni z preg_match_all
questionmark.gif
Go to the top of the page
+Quote Post
Daiquiri
post 18.09.2010, 10:55:36
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Backslashe są bo masz zawartość $q w '' a nie "", a korzystasz z /". Albo zadziałaj z
  1. $q = '<tr id="tlo_piaskowe_czarne">'
albo z
  1. $q="<tr id=\"tlo_piaskowe_czarne\" >"
Go to the top of the page
+Quote Post
Ulysess
post 18.09.2010, 10:57:33
Post #5





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


nakręciłem..
to czemu takie rozwiązanie nie działa questionmark.gif ->
  1. $page = '<tr id="tlo_piaskowe_czarne" align="center">
  2. <td height="20">40.</td>
  3. <td><b><font color="#FF9900">Kamil</font></b></td>
  4. <td><b>24</b></td>
  5. <td>152,767</td>
  6. </tr>
  7. <tr id="tlo_piaskowe_czarne" align="center">
  8. <td height="20">41.</td>
  9.  
  10. <td><b><font color="#FF9900">Marek</font></b></td>
  11. <td><b>23</b></td>
  12. <td>152,413</td>
  13. </tr>
  14. ';
  15. //echo $page;
  16. preg_match_all("|<tr id=\"tlo_piaskowe_czarne\" align=\"center\">(.*)</tr>|U",$page,$dane,PREG_PATTERN_ORDER);
  17.  
  18. $po = 0;
  19. for($i=0;$i<count($dane[1]);$i++)
  20. {
  21. echo $dane[1][$i],'<br>';
  22. }

bum..

Ten post edytował Ulysess 18.09.2010, 13:52:45
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: 25.07.2025 - 08:07