![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 19.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mianowicie, mój skrypt przeszukuję pewną stronę www i wyciąga z niej dane za pomocą cURL + pętli for + wyrażeń regularnych.
Wpierw inicjowana jest pętla która przechodzi na kolejne podstrony (1-100) W tej pętli jest kolejna pętla for (0-50) która wyciąga potrzebne informacje z 50 produktów. Sprawdza czy nie istnieją w bazie, jeżeli nie wtedy zapisywany jest obrazek każdego produktu oraz dane są dodawane do bazy danych i tak w kółko. Jeżeli produkt istnieje w bazie, dostajemy stosowny komunikat. Lecz zauważyłem coś, przy np 3 stronach, gdzie powinno być w bazie 150 rekordów (Skrypt uruchomił się bez błędów), jest tylko np 143, natomiast zapisanych obrazków, jest prawidłowa liczba 150. Próbowałem nawet funkcji sleep przed dodawaniem do bazy, albo po dodawaniu do bazy, niestety problem występuje nadal. Czym to może być spowodowane, że niektóre rekordy są pomijane. Czy możliwe są takie wadliwości pętli ? Ten post edytował Reptile ReX 28.12.2010, 11:08:50 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie ma opcji by "for" gubił część obliczeń, musisz mieć jakiś błąd w logice, może jakieś części strony są nie poprawne? np. mają niedomknięty jakiś znacznik dzięki czemu wyrażenie się nie podpasuje, a dla obrazków masz kolejne, czy tym samym wyciągasz dane, bo jeśli kolejne to może jest ono mniej wybredne i błędy w kodzie mu nie przeszkadzają, aż tak bardzo?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 19.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Obrazki są wyciągane w tej samej pętli co reszta, pokminię jeszcze z wyrażeniami regularnymi i sprawdzę te znaczniki, dzięki za upewnienie że pętla nie może niczego zgubić.
Hmm użyłem strip_tags lecz dalej niepełne rekordy. Edit2. Użyłem mysql_real_escape_string oraz strip_tags, widocznie któryś wpis zawierał znak, który nie był dozwolony w SQL. Dzięki SHADOW jeszcze raz (IMG:style_emoticons/default/smile.gif) Ten post edytował Reptile ReX 28.12.2010, 11:59:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 07:41 |