![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym zrealizować projekt małego sklepu internetowego. Produkty do sprzedaży są w pliku XML, gdzie każdy produkt to osobny element z (między innymi) atrybutem opisującym kategorię produktu. Plik z danymi jest dosyć duży (prawie 2MB) i chyba nierozsądnym byłoby otwieranie go i odczytywanie przez potencjalnego klienta gdy tylko wejdzie on na stronę. Mam małe doświadczenie z PHP i żadne z XML. Jedyne co umiem zrobić to załadować cały plik do tablicy w php ale to zdaje się być głupie. Można oczywiście napisać skrypt kopiujący cały bazodanowy plik do mysql ale to też chyba niezbyt optymalne rozwiązanie. Przy okazji proszę o jakieś porady (linki, numery magazynów komp.) przy tworzeniu sklepu internetowego od podstaw. Ten post edytował phaphiq 16.09.2009, 23:57:20 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 37 Dołączył: 1.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak - pobieram xml, potem rozdzielam to na konkretne kategorie, tablicę z produktami dla danej kategorii serializuje (serialize) i tak otrzymany ciąg zapisuje do pliku tekstowego. Potem przy wczytywaniu produktów dla kategorii pobiera się plik i ciąg traktuje się unserialize dzięki czemu dostajemy ponownie tablicę z produktami. Odpada niepotrzebne łączenie się z bazą danych
![]() Można by jeszcze ustawić śledzenie pliku xml i w razie jego modyfikacji wykonać ponowne parsowanie aby mieć pewność że produkty są aktualne. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Można oczywiście napisać skrypt kopiujący cały bazodanowy plik do mysql ale to też chyba niezbyt optymalne rozwiązanie. why? kilka minut pisania importera i masz "normalny" sklep korzystający z bazy:) ewentualnie jak masz dostęp do memcache czy innego pamięciowego cache'a wrzuć do niego całego XML i do niego się odwołuj -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jestem w trakcie pisania tego importera i napotkałem się na pierwszy problem. Otóż plik XML ma nagłówek
no i to chyba nie przechodzi poprawnie przez xml_parse(). Otóż co się dzieje: gdy parser analizuje jakąś wartość (spomiędzy tagów) to wszystko jest ok do napotkania pierwszego znaku polskiego i rozdziela go na dwa pola. Przykład:
zostanie rozdzielone na "Wolno" i "ść i swoboda". Jak widać, rozdzielenie odbywa się tylko raz - do pierwszego znaku narodowego. Czy można to jakoś obejść bez pisania translatora z pliku xml w tym kodowaniu iso np utf-8? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:58 |