Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z odczytaniem pliku HTML.
kaapa
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.04.2007

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


Witam!
Potrzebuję odczytać plik html podobnie jak xml(najlepiej przez simplexml, chociaż domem też nie pogardzę). Chodzi o to że strona nie ma odpowiedniej struktury i dlatego plik nie może zostać załadowany ani przez dom ani przez simplexml. Wyrzuca mniej więcej takie błędy
  1. <?php
  2. Warning: simplexml_load_file() [function.simplexml-load-file]: test.html:34: parser error : Opening and ending tag mismatch: link line 14 and head in D:xampphtdocssygnaturka&#092;test.php on line 2
  3.  
  4. Warning: simplexml_load_file() [function.simplexml-load-file]: </head> in D:xampphtdocssygnaturka&#092;test.php on line 2
  5. ?>


Oczywiście dane mogę odczytać przez explode, ale to strasznie ograniczy wydajność skryptu. Czy można jakoś ominąć dokładne sprawdzanie struktury dokumentu?
Proszę o pomoc.
Pozdrawiam,
Kacper.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
artur81
post
Post #2





Grupa: Zarejestrowani
Postów: 252
Pomógł: 2
Dołączył: 4.12.2004
Skąd: Skierniewice

Ostrzeżenie: (10%)
X----


próbowałeś file_get_contents" title="Zobacz w manualu PHP" target="_manual ?
Go to the top of the page
+Quote Post
kaapa
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.04.2007

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


Tak samo, jakieś inne pomysły ? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Lejto
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


pochwalisz się kodem? może tam coś nie gra, albo ścieżki masz nie te
Go to the top of the page
+Quote Post
kaapa
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.04.2007

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


Ścieżka jest na 100% dobra, kwestia jest tego że strona jest zbudowana nie zgodnie ze standardami xml. Jest jakaś funkcja która przeleci mi ciąg i podomyka znaczniki itd ?
Kod
  1. <?php
  2. $file = file_get_contents('test.html');
  3. $dom = new DOMDocument();
  4. $dom->loadXML($file);
  5. ?>

Zwykłe wczytanie nic więcej ;/
Go to the top of the page
+Quote Post
Lejto
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


a po co file_get_contents? może nie masz biblioteki DOM
info: http://pl.php.net/dom
Go to the top of the page
+Quote Post
kaapa
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.04.2007

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


Wczytałem bezpośrednio domem no i znowu error, widze że chyba explode to jedyne rozwiązanie.
[php][/php]Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Start tag expected, '<' not found in Entity, line: 1
Go to the top of the page
+Quote Post
Lejto
post
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


a zobacz z error_reporting(0); (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , ale chyba to nic nie da
Go to the top of the page
+Quote Post
l0ud
post
Post #9





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Nie da się przetworzyć niepoprawnego kodu XML. Dlaczego przeglądarki nie potrafią wyświetlić strony w XHTML1.1 gdy ta zawiera nawet jeden, drobny błąd?

kaapa, pozostaje Ci użyć do tego wyrażeń regularnych. Wydajnością bym się nie martwił - i tak 99% czasu wykonywania skryptu zajmie ściąganie tego pliku...
Go to the top of the page
+Quote Post
kaapa
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.04.2007

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


A zadam jeszcze jedno pytanie, może troszke mały ot będzie ;p Czy wyrażenia regularne są dużo wydajniejsze od funkcji explode ?
Go to the top of the page
+Quote Post
dadexix
post
Post #11





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


zależy co chcesz robić, na jaki duzym stringu...
Czasem lepiej to czasem to, zresztą całkiem nie rozumiem ponieważ wyrażenia regularne mogą się dopasować a explode - nie...
Go to the top of the page
+Quote Post
ucho
post
Post #12





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


Spróbuj http://simplehtmldom.sourceforge.net/ - nie ma problemów z parsowaniem błędnego kodu, i można bardzo wygodnie wyszukiwać elementy po atrybutach, klasach czy normalnie po id zaś całość to tylko jeden plik.

Ten post edytował ucho 10.07.2008, 08:03:07
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 20:31