Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pętla wraca na początek pliku
Forum PHP.pl > Forum > Przedszkole
kubax33
Mam coś takiego i cały czas mam problem z tym, że wczytuje sobie z jakiegoś pliku id strony z której będzie coś pobierane, odczytuje wynik i dodaję go do linku. W bazie tekstowej mam kilkaset id z którego jest zbudowany każdy następny link jak widac w skrypcie, ale PROBLEM POLEGA NA TYM, że skrypt np. przy 20 rekordzie mieli mi wszystko od nowa później leci gdzieś dalej i znowu od nowa w sumie nawet nie widzę reguły działania. Zamiast po odczytaniu wyników strony X zapisać je i przejść do kolejnej wraca i błądzi. Ciekawi mnie to, że kilkanaście stron zapisze tak jak chcę, a później zaczyna się mydło i pwidło. Dodam też, że kolejne strony zapisywane są OK wszystko ładnie pobiera itd dane się zgadzają. W konsekwencji to co chę mieć zapisane w pliku jest kilkukrotnie powielone w różnych miejscach zamiast 100 linijek w pliku mam 1 000 z powielonymi informacjami. Męczę się cały dzień więc może ktoś pomoże. To nie ma pięknie wyglądac ma funkcjonować niektóre rzeczy mogą być dziwne, ale tak musi być:

  1. $plik = fopen("baza.csv", "r");
  2.  
  3. include('klasa/simple_html_dom.php');
  4.  
  5. while($symbol = @fgets($plik))
  6. {
  7. echo "";
  8. $new = trim($symbol);
  9.  
  10. if (false !== ($contents = @file_get_contents('https://www.strona.en/product='.$new.'.html')))
  11. {
  12. $html = file_get_html('https://www.strona.en/product='.$new.'.html') or die ("bład");
  13. }
  14. else
  15. {
  16. $html = file_get_html('https://www.strona.en/product=11004153.html') or die ("bład");
  17. $error = "ok";
  18. }
  19.  
  20.  
  21. $info['img'] = $html->find(".imgClass",0)->src;
  22. $info['img2'] = $html->find(".imgClass",1)->src;
  23. $info['img3'] = $html->find(".imgClass",2)->src;
  24. $info['img4'] = $html->find(".imgClass",3)->src;
  25. $info['img5'] = $html->find(".imgClass",4)->src;
  26. $info['opis'] = $html->find(".productClass",0)->innertext;
  27.  
  28. $tabela = '<table>'.$info['opis'].'</table>';
  29. $tabela = str_replace(' ', '', $tabela);
  30.  
  31.  
  32. if(!empty($info['img'])) { $img1 = ''.$info['img'].', ';}
  33. if(!empty($info['img2'])) { $img2 = ''.$info['img2'].', ';}
  34. if(!empty($info['img3'])) { $img3 = ''.$info['img3'].', ';}
  35. if(!empty($info['img4'])) { $img4 = ''.$info['img4'].', ';}
  36. if(!empty($info['img5'])) { $img5 = ''.$info['img5'].', ';}
  37.  
  38.  
  39.  
  40. $photo = ''.$img1.''.$img2.''.$img3.''.$img4.''.$img5.'';
  41.  
  42. $photo = substr($photo, 0, -2);
  43.  
  44. if (!empty($error))
  45. {
  46. $photo = "";
  47. $photo = str_replace('000000' , '', $photo);
  48. $tabela = "";
  49. $error = "";
  50. }
  51.  
  52. $plikTXT = "upload.csv";
  53. $handle = fopen($plikTXT, "a");
  54. if (fwrite($handle, $new.";".$photo.";".$tabela."\n") === FALSE)
  55. {
  56. echo '<span style="color: #ff0000">Nie mogę zapisać danych do pliku...</span></br>';
  57. }
  58. else
  59. {
  60. echo '<span style="color: #33CC33">Produkt: '.$symbol.' dodany!</span></br>';
  61. }
  62.  
  63. fclose($handle);
  64.  
  65.  
  66. }
  67.  
  68. fclose($plik);
  69.  
mar1aczi
Spróbuj z takim warunkiem w while
  1. while(($symbol = @fgets($plik)) !== false)
Pyton_000
Wywal @ przede wszystkim
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.