![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Piaskownica Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taką zagwozdkę. Muszę wyciąć pewne dane z kodu html i wsadzić je w tablicę. Taką procedurę musiałbym powtarzać codziennie, więc warto ją zautomatyzoać. Sęk w tym, że nie wiem jak się za to wziąć. Procedura ma wyglądać tak, że: 1. Wycinam to co jest niepotrzebne na początku:
A teraz obrabiam każdy wiersz w tabeli: itd. Finalnie dane miałyby być zapisywane do pliku txt w formie CSV: A,B,C D,E,F Z samym zapisem sobie poradzę, ale jak uzyskać array('A','B','C') ? Na końcu mamy jakiś tam inny kod, który chciąłbym wyciąć - jak zaprogramować jakiś myk, żeby skrypt rozpoznał kiedy kończą się wiersze w tabeli? Myślałem o funkcji file() i obróbce każdego wiersza z osobna, ale obawiam się, że jak strona zmieni się jakoś z dnia na dzień (tabela jest wbudowana w masę kodu html, i zawsze istnieje prawdopodobieństwo, że zostanie dodana jakaś inna informacja, cyz banner, który zaburzy proces), to będzie klapa i algorytm mi zapisze nie to co trzeba. Będę wdzięczny za każdą wskazówkę. Szukam na razie prostego rozwiązania, bo niestety czas mnie goni. Na dłuższą metę nawet bym Wam głowy nie zawracał. Z góry dzięki za pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Myślałem o funkcji file() i obróbce każdego wiersza z osobna, ale obawiam się, że jak strona zmieni się jakoś z dnia na dzień (tabela jest wbudowana w masę kodu html, i zawsze istnieje prawdopodobieństwo, że zostanie dodana jakaś inna informacja, cyz banner, który zaburzy proces), to będzie klapa i algorytm mi zapisze nie to co trzeba. Będę wdzięczny za każdą wskazówkę. Szukam na razie prostego rozwiązania, bo niestety czas mnie goni.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Piaskownica Ostrzeżenie: (0%) ![]() ![]() |
Dzięki! phpQuery wygląda obiecująco, ale chyba nie zdążę tego opanować... no cóż, spróbuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Kod $text='<table cellspacong="0" cellpadding="0"width="376" align="center"> <tr><td align="left" colspan="4" class="h3">22-12-2008</td></tr> <tr><td colspan="4"><hr size="1"></td></tr><tr> <td width="45" align="right">A</td> <td> </td> <td align="left" width="234">B</td> <td align="right">C</td> </tr> <tr> <td width="45" align="right">D</td> <td> </td> <td align="left" width="234">E</td> <td align="right">F</td> </tr>'; $preg = preg_match_all('/<td[^>]{14,25}>([^<]+)<\/td>/', $text, $matches); echo '<pre>'; print_r($matches[1]); echo '</pre>'; i tąś tablicę potem w pętli możesz przelecieć i co trzeci wyraz jako ten sam z kolumny - gdyż w tej tablicy masz "siurkiem" i przy tym wyrażeniu nie musisz też góry obcinać Ten post edytował zegarek84 20.01.2009, 22:00:34 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Piaskownica Ostrzeżenie: (0%) ![]() ![]() |
Kurcze dzięki! Właśnie miałem dopisać pytanie o te wycinanie.
Czyli to wystarczy, jeśli zaciągnę cały plik? Ten kod mi wytnie to co trzeba? Oczywiście przeanalizuję to, ale od razu pytam, żeby się upewnić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Zamiast pytać, sprawdź. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Najpierw sam kombinuj, potem wołaj na forum. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Piaskownica Ostrzeżenie: (0%) ![]() ![]() |
OK sorry, sprawdziłem - chodzi.
Dlaczego jednak kiedy odwołam się do całej tablicy $matches, zamiast $matches[1], wyświetla mi się:
Skąd się wzięły 2 tablice? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
w $maches[0] wyświetla Ci się znacznie więcej niż widzisz - zerknij w kod wyświetlonej strony....
$maches[0][1] widzisz jako A a w rzeczywistości to jest całe dopasowane wyrażenie regularne czyli: Kod <td width="45" align="right">A</td> poprostu często warto też zaglądać w kod/źródło strony gdyż na monitorze nie wszystko widać Ten post edytował zegarek84 20.01.2009, 18:54:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 18:15 |