php jak pobrać z tabelki drugie <td> </td>? |
php jak pobrać z tabelki drugie <td> </td>? |
26.12.2009, 23:42:14
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
Witam
Próbuję wyciągnąć z tabelki dane za pomocą regexp . Sytuacja następująca w pierwszym <td> </td> jest znane -stałe słowo "dane" chcę wyciągnąć znaki zawierające sie w następnym <td></td> znaki to losowe słowa a-Z i 0-9 potrzebne do pracy. ten kod pobiera prawie dobrze tylko nie kończy na następnej pozycji, drugim td, tylko przerabia caly dokument do konca , jak go poprawić ? /dane(.*)<\/td>/si Arek Ten post edytował arekgr 26.12.2009, 23:54:44 |
|
|
27.12.2009, 00:51:37
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
.* -> .*?
Poczytaj o tzw. zachłanności w wyrażeniach regularnych |
|
|
27.12.2009, 01:12:18
Post
#3
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
To nie pomaga za szybko się konczy, juz na kodzie <td>dane</td> i dalej nie czyta
/dane(.*?)<\/td>/si |
|
|
27.12.2009, 02:24:40
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
No to dodaj jeszcze do wyrażenia by odczytało i następne <td>...</td>
|
|
|
27.12.2009, 12:20:48
Post
#5
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
w ten sposóbo pobiera za dużo ..
/dane(.*?)<\/td><td(.*?)><\/td>/si jak to zrobić ? żeby pobralo zawartość z <td>dane</td> i drugiego <td>szukane !</td> |
|
|
27.12.2009, 12:33:54
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
W tym drugim to chyba chciałeś: <td>(.*?)</td>, a nie to co napisałeś...
|
|
|
27.12.2009, 13:06:07
Post
#7
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
poprawilem tak jak pisałeś i dodalem \s+ bo nic sie nie pojawilo ale i tak za duzo pobiera dodatkowe <td> ,a bez \s+ nic nie
pobiera ... /dane(.*?)<\/td>\s+<td>(.*?)<\/td>/si |
|
|
27.12.2009, 13:33:09
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Sprawdzone - działa. |
|
|
27.12.2009, 19:54:40
Post
#9
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
Dzieki za kod ale ten co podałeś również pobiera wszystkie dane pomiedzy tagami <td> a mi chodzilo o tag z słowem Dane i następny po nim, moja tabelka ma sporo wiecej tych zbytecznych td ...
|
|
|
27.12.2009, 21:54:12
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Tamten kod zwraca Ci wszystkie znalezione: <td>...dane...</td><td>...</td> (indeks zero tablicy $result)
Oraz wszystkie <td>...</td> wystąpujące zaraz po TD z "dane" (indeks 1 tablicy $result) |
|
|
27.12.2009, 22:17:27
Post
#11
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
Właśnie działa dobrze , ale mi chodziło tylko o zawartość tylko jednego tagu <td> tuż po <td> danych </td>
|
|
|
28.12.2009, 11:35:43
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
to jaki problem teraz z tej tablicy pobrać gotową wartość??
tutaj też masz gotową odpowiedź ale nie na wyrażeniach regularnych lecz DOM:
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
28.12.2009, 14:19:56
Post
#13
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 3 Dołączył: 9.06.2007 Ostrzeżenie: (0%) |
a jesli sie upierasz przy wyrazeniu regularnym to przelacznik U bedzie nieodzowny
Ten post edytował wry 28.12.2009, 14:21:32 -------------------- |
|
|
28.12.2009, 23:39:22
Post
#14
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 26.12.2009 Ostrzeżenie: (0%) |
Witam dziękuje za zainteresowanie i kilka nowych odpowiedzi , w dalszym ciągu regexp w takiej postaci nie wydziela prawidlowo danych
preg_match_all("/Lokalizacja.*<\/td>\s+<td>(.*)<\/td>/Usi",$curl_result, $out PREG_SET_ORDER); może faktycznie zrobić to na dom.. Arek G dziękuje wszystkim ślicznie ! |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 09:30 |