![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
przedstawiam do oceny parser HTML mojego autorstwa. Plik do pobrania: http://www.filedropper.com/htmlparserclassphp Opis: Zasada działania jest prosta, wystarczy zaincludować plik z klasą, która znajduje się w powyższym pliku. Następnie utworzyć nowy obiekt, np.
Dostępne są 3 metody pobierania HTML, który będziemy parsować: - z pliku
- ze stringa
- z URL
Następnie wywołanie parsera:
Jako wynik zmienna $resource będzie przechowywać tablicę obiektów DIV-ów znalezionych w parsowanym źródle, bądź jeden obiekt, jeśli w metodzie find jako drugi argument podamy liczbę (wtedy zwróci n-ty DIV z parsowanego źródła). Odczyt informacji: Odczyt jest bardzo prosty, każdy wynik zawiera obiekty text oraz html, ponadto jeśli DIV posiada atrybuty, np. class bądź id zostaną one zwrócone również w postaci obiektów. Przykład:
To tak po krótce tytułem wstępu. Jednak parser wymaga optymalizacji, ponieważ czas parsowania średniej wielkości źródła jest dosyć długi. Proszę o oceny, a także o wskazanie dalszej drogi rozwoju owego parsera (zastanawiałem się jeszcze nad wyszukiwaniem elementów HTML np. po class, bądź po ID, jednak w tym momencie nie mam jeszcze pomysłu jak to zrealizować, bo już teraz parser w obecnej formie jest dość "ciężki"). Pozdrawiam i dzięki za ewentualne sugestie. EDIT: Zapomniałem dodać, możemy również szukać dzieci naszych wynikowych obiektów, np.
Możliwość zagnieżdżania jest nieograniczona. Ten post edytował b4rt3kk 4.10.2013, 13:31:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli tak podchodzisz do tematu to nie mam Ci nic więcej do powiedzenia.
Umieszczasz temat w dziale "Oceny", na początku piszesz: Cytat przedstawiam do oceny parser HTML mojego autorstwa. Później piszesz: Cytat Proszę o oceny, a także o wskazanie dalszej drogi rozwoju owego parsera ... Pozdrawiam i dzięki za ewentualne sugestie. Wskazanie ci problemów wydajnościowych miało być dodatkiem do tematu, a nie jego głównym celem. Głównym celem była ocena, którą na pierwszy rzut oka podesłałem. Kod ocenia się nie tylko patrząc na jego użyteczność, chociaż podobnie jak sowiq nie widzę dla tej klasy sensu bytu. Niestety, ale przejawiasz problem większości programistów PHP, którzy mają głęboko w poważaniu swój kod, jego estetykę i poprawność wg. standardów, a potem w przyszłości ktoś musi takie "wymiociny" przeglądać i edytować, bo komuś nie chciało się zadbać o kod i tłumaczył się tym, że użyteczność jest ważniejsza niż estetyka kodu. Najlepiej zakoduj swoją klasę w IonCube, albo napisz wszystko w jednej linii i daj nam ponownie do oceny. Bo przecież chodzi o użyteczność, a nie estetykę i wygląd kodu. A błąd w twoim toku rozumowania powstał już na etapie kiedy zrodził się pomysł stworzenia tej klasy zamiast wykorzystać DOMDocument Ten post edytował mstraczkowski 5.10.2013, 09:03:45 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 20:18 |