![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam mały problem z długim działaniu skryptu. Pobieram kod strony przez: (na wyciaganej stronie mam ok 300 pozycji podzielonych np po 40 na stronie) Potem metodą preg_match_all wyciągam potrzebne dane: sprawdza mi ile jest stron nastepnie mam petle ktora powtarza się tyle ile jest stron, i wyciąga kolejne dane z kodu strony.
W tej petli jest nastepna która sprawdza po kolei przedmioty na tej stronie
I tak w skrócie to wygląda, czy da się to jakoś zoptymalizować i użyć innych metod? Proszę o jakieś podpowiedzi i funkcje których mogę użyć. Z góry dziękuję za pomoc, pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 92 Dołączył: 6.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wykonujesz zapytania i pobieranie stron w petli. Pomyslales? (sorry za brak polskich polskich znakow, na razie nieogarniam Androida :-))
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
ale muszę jakoś wyciągnąć każdą pozycję ze stron.
przykład strony: strona.php?page=1 jakiś tekst dane do wyciagniecia 1 jakiś tekst dane do wyciagniecia 2 jakiś tekst dane do wyciagniecia 3 jakiś tekst dane do wyciagniecia 4 jakiś tekst dane do wyciagniecia 5 strona.php?page=2 jakiś tekst dane do wyciagniecia 6 jakiś tekst dane do wyciagniecia 7 jakiś tekst dane do wyciagniecia 8 jakiś tekst dane do wyciagniecia 9 jakiś tekst dane do wyciagniecia 10 I tak dalej. Jakimi metodami mogę to zrobić? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
explode()
-------------------- LS Easter egg < |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
z takiego kodu da się wyciągnąć dany tekst metodą explode() ?
I chce wyciągnąć te dane miedzy <span class="smaller">dane</span> Rozumiem że w ten sposób: Tylko że chciałbym szukać tylko tych elementów które są zawarte między <div class="naviLeftContent" id="categoriesList"> a nie szukać ich w całym kodzie strony. i metoda preg_match_all może to zrobić. Musiałbym najpierw explode() - <div class="naviLeftContent" id="categoriesList"> a potem dopiero explode() - <span .... Czy dobrze myślę? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
moja propozycja jest taka: dowiedz się co trwa tak długo.
aby to zrobić mozesz użyć np. narzędzia xdebug. jesli nie chces sie w to bawic to powstawiaj w kod kilka flag czasowych pomiędzy różne jego fragmenty, po tym poznasz co trwa tak długo. dopiero potem próbuj optymalizować. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
przerobiłem to na explode() i jak na razie w pierwszej fazie działa szybciej niż poprzednia metoda, ale jeszcze muszę dodać parę sprawdzeń i zobaczę co się będzie działo.
Dziękuję za podpowiedzi Mam jeszcze takie małe pytanie, nie chcę zakładać nowego tematu więc piszę w tym. Posiadam
W jaki sposób dopisywać te elementy abym mógł je potem wykorzystać poza pętlą while? Będę miał tablicę $zmienna i w niej wszystkie nie znalezione elementy. Kiedyś coś takiego robiłem ale nie mogę znaleźć, czy może coś takiego: $zmienna. = ... ? (z kropką?) |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jednak troszkę się zapędziłem i myślałem, że będzie to takie proste ale niestety nie.
W bazie mam tytuły i sprawdzam je ze zmienna $nazwa
Wszystko ladnie pieknie tylko że ja chce aby tylko te $id ktorych nie znalazlo w caych 30 cyklach w petli. A pokazuje mi wszystkie ktorych nie znalazlo w 1 i 2 cyklu a np znalazło w 3. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował CuteOne 10.07.2011, 15:36:07 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam w tablicy wszystkie $id które są zgodne z $nazwa,
Teraz chciałem zamienić w bazie te $id których nie ma w tablicy, jakieś propozycje? //tablica [1] => 1 . . . [n] => 321 w bazie mam jeszcze id 322 którego nie ma w tablicy jak sprawdzić którego id nie ma w tablicy |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 309 Pomógł: 56 Dołączył: 3.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Robisz drugą tablicę w której trzymasz id z bazy danych i porównujesz obie array_diff()
Ten post edytował muk4 10.07.2011, 20:31:29 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:24 |