Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Parsowanie strony HTML w php
Forum PHP.pl > Forum > Przedszkole
Grzyby
Witam.

Potrzebuje pomocy przy parsowaniu strony Html i wyjęcia wszystkich plików js.
Ida jest taka że chcę pobrać wszystkie pliki js skompresować je do jednego gzipa.

Próbowałem parsować oraz manipulować strona HTML za pomocą
- Simplehtmldom
- DOMDocument

Funkcje działają poprawnie czyli każda z nich ładnie mi pomaga "dobrać" się do każdego elementu na stronie Html, skasować go oraz wynik zapisać do Html.
Problem pojawia się gdyż te funkcje formatują kod wynikowy HTML'a tak że po wyświetlenie w przeglądarce mam błędy w kodzi javascript.
w DOMDoc formatOutput mam na "false" ale to tez nie daje rozwiązania.

Niestety problem jest w budowie strony html oraz w sposobie dodawania plików js do strony, którego nie mogę kontrolować "bezpośrednio" wiec muszę "obrabiać" już wychodzacy kod Html na wyjściu.

Sprawdzając problem okazuje się ze tylko wczytam stronę i zapisze bez manipulacji czy to Simple Parser czy DomDoc , wynikowy HTML jest błędny i w przeglądarki się "wywala".

Czy ktoś zna może jakiś inny Parser do html w PHP? albo rozwiązał problem może inaczej?


Artur




!*!
Cytat
Czy ktoś zna może jakiś inny Parser do html w PHP?

preg_match_all
I co to znaczy że kod wynikowy jest błędny?
Grzyby
W kodzie pokazuje mi dodatkowe znaki np:( było ale forum wycina te znaki)
Informacje o problemie z formatowaniem tych funkcji już doczytałem...
Znalazłem informacje o Zend_Dom_Query zobaczymy jak się to działa.

Artur
wNogachSpisz
Witaj.

Jeszcze do niedawna poleciłbym DOMDocument.
Niestety ta biblioteka podczas ładowania dokumentu (przed utworzeniem w pamięci drzewa DOM) modyfikuje wiele szczegółów niezgodnych ze standardem HTML, np. wyrzuca poza paragraf wszelkie elementy blokowe.

Dobrze gdybyś przesłał na forum kod, który jest przez DOMDocument nieprawidłowo parsowany, tylko skróć go wcześniej do minimalnej postaci pozwalającej zreprodukować błąd.

Szukając narzędzia do parsowania HTML w PHP, warto przeczytać ten topic: http://stackoverflow.com/questions/3577641...s-html-with-php

Osobiście przestałem używać PHP do tego celu. Projekt o nazwie PhantomJS, to tzw. headless browser. Tam do traversowania DOM używam natywnej funkcji Javascript „document.querySelector()”.
zegarek84
jeśli nie PHP to z biblioteki QT (C++) polecam QWebElement
Grzyby
Musze mieć w PHP...

To jest propozycja rozwiązania ale nie działa ...
http://devpytania.pl/questions/19504/odwoa...-dom-parser-php

Artur
-----------
Kot
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.