Próbuję parsować plik HTML, który ma okropną (wierz mi, to jest) strukturę HTML, a z tego powodu i mojego braku wiedzy, nie mogłem napisać własnego parser. Później próbowałem używać prostego parsera HTML Dom, ponieważ wiele osób (również na SO) poleca to.Prosty HTML Dom - Błąd krytyczny podczas korzystania z pliku load_file
Wymagałem simple_html_dom.php, a następnie utworzyłem obiekt. Wydają się działać, funkcja require() zwraca "1" i var_dump() - obiekt zwraca obiekt.
Po tym spróbowałem załadować adres URL tak, jak zostało to zrobione w instrukcji, ale dostałem fatalny błąd, niezależnie od tego, jaki URL próbowałam. Błąd był następujący:
Fatal error: Call to undefined function mb_detect_encoding() in
/home/fema/web/subdomain/devel/www_root/parser/
simplehtmldom_1_5/simple_html_dom.php on line 988
Sprawdziłem co jest na linii 988 i jest on następujący:
// Have php try to detect the encoding from the text given to us.
$charset = mb_detect_encoding($this->root->plaintext . "ascii",
$encoding_list = array("UTF-8", "CP1252"));
Rozumiem, że chodzi o kodowanie znaków, ale to wszystko. Nie znalazłem nic o tym ani z Google, ani z SO.
Mój cały kod jest (zastępczy URL):
<?php
require('simplehtmldom_1_5/simple_html_dom.php');
// Create a DOM object
$dom = new simple_html_dom();
$dom->load_file('http://www.google.com/');
?>
Czy ktoś może mi powiedzieć, co robić? Lub jakąś radę, gdy coś takiego się dzieje.
Z góry dziękuję.
Dziękuję za odpowiedź, to jest PHP 5.3, ale zapytam mojego przyjaciela. (Używam jego serwera.) –
Wygląda na to, że masz rację, ale brakuje pamięci RAM do kompilacji nowego PHP, mówi. Dziękuję za Twoją odpowiedź. –
Świetna Wielka odpowiedź .. –