![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 12.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
sytuacja wygląda tak : musze odczytać dane z bazy danych zapisanej w formacie .xml, która znajduje się na zewnętrznym serwerze (tzn. nie na tym, na którym działa skrypt). Plik tej bazy zajmuje jakieś 5-6 Mb i jest ona stale uaktualniana. Mój problem polega na tym, że nie wiem jak zrealizować odczytywanie z tej bazy — tj. mam na myśli to, że zwykłe parsowanie przez np. SimpleXML nie bardzo przechodzi, bo to jednak zajmuje troche czasu, aby serwer ją załadował, odczytał dane i wyświetlił. Jak to rozwiązać tak, aby wyświetlanie było w możliwie krótkim czasie ? Dodam, że baza ma około 100 000 linii, a chodzi tu po prostu o listę produktów sklepu (opis, cena, itp.). Pozdrawiam, Radek |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Klasa XMLReader dostępna w PHP.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 32 Dołączył: 31.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 12.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za szybkie odpowiedzi,
@ucho : też o tym myślałem, ale jak to konkretnie robisz ? Tj. dajesz to jakoś w crona, czy jak ? @erix : czy ta klasa rzeczywiście jest na tyle szybka ? Wybacz pytanie, ale po prostu nie zajmuje się PHP tak na co dzień. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
XMLReader jest najszybszym dostępnym sposobem odczytu plików XML w PHP, gdyż pozwala na odczyt strumieniowy i - AFAIK (ale mogę się mylić) - nie przeprowadza walidacji na starcie.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 12.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
No OK, ale tak się zastanawiam, bo skoro plik tej bazy zajmuje jakies 5-6 Mb, to przeciez i tak nie uniknę każdorazowego ściągania go. Wobec tego, chyba lepiej byłoby ściągać ją na dysk i co jakiś czas aktualizować. Tylko jak to zrealizować ? Pytałem o crona, jak byś to zrealizował ? Mam na myśli, żeby to ściąganie np. raz na dzień, działo się automamtycznie.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat to przeciez i tak nie uniknę każdorazowego ściągania go http://pl2.php.net/manual/en/xmlreader.open.php -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 12.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wybacz, jesli to głupie pytanie, ale mógłbyś wytłumaczyć, co miałeś na myśli podając mi ten link ? Bo z opisu nie wynika nic konkretnego apropo ściągania/nie ściągania za każdym razem zawartości pliku.
Oczywiście, skoro XMLReader odczytuje sekwencyjnie, to pewnie nie robi tego za każdym razem "od nowa" tylko przesuwa wskaźnik pliku, ale mi chodziło o trochę co innego - o ściąganie całej bazy, co jakiś czas, automatycznie, i później o jak najszybszy odczyt z takiej lokalnej bazy. EDIT: Dodam, że problemem staje się również serialize/unserialize - ponieważ gdy odczytuję bazę za pomocą SimpleXMLa, nie mogę później wywołać poprawnie unserialize. Zna ktoś rozwiązanie tego problemu ? Ten post edytował PoProstuRadek 12.02.2010, 19:06:52 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
URI -> adres -> XMLReader sam odczytuje strumieniowo dane z XML.
Potem sobie to, przy odczycie, serializujesz do tablicy i masz szybki dostęp. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 06:55 |