Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Operacje zpisu/odczytu z pliku
Forum PHP.pl > Forum > Przedszkole
amii
Mam takie 3 funkcje. Funkcja zapisuj zapisuje we wskazanym pliku wartość podaną w parametrze $ile domyślnie =1, następnie zwraca tą wartość.
Funkcja zwroc1 odczytuje wartość pliku i ją zwraca.
Funkcja ppp jest funkcją narzędziową obsługującą w pętli określone adresy url pobierane z pliku tab.txt. Wartość na echo są ok. Wartość w pliku też ok, mimo to funkcja wysyła dane post tylko do ostatniego adresu z pliku tab.txt, co zrobić aby obsługiwane były wszystkie adresy z pliku tab.txt ?
  1. function zapisuj($plik, $ile=1) {
  2.  
  3.  
  4. $zmienna = file($plik);
  5.  
  6.  
  7.  
  8. for ($i=$zmienna[0]; $i<$zmienna[0]+$ile; $i++) {
  9. }
  10.  
  11.  
  12. $otworz = @fopen($plik, 'w+'); //wskaznik na poczatku pliku
  13. if ($otworz) {
  14. $zapisz = fwrite($otworz, $i); //zapisuje w pliku ile wyslal emiali
  15. $zamknij = fclose ($otworz);
  16. if ($i<0) $i = 0;
  17. return $i;
  18. }
  19. else {
  20. echo 'Nie mogę przeczytać pliku ' . $plik;
  21. }
  22. }
  23.  
  24.  
  25. function zwroc1($plik) { //funkcja oczytujaca ilosc obsluzonych adresow url
  26.  
  27. $zmienna = file($plik);
  28. if ($zmienna[0]=='') $zmienna[0]=0;
  29.  
  30. return intval($zmienna[0]); //zwraca ilosc obsluzonych url
  31. }
  32.  
  33.  
  34.  
  35.  
  36. function ppp($dodaj) {
  37. $param = array('post'=>'jekies dane', //przykladowe dane post
  38. 'email'=>'przykladowy_email@o2.pl'
  39. );
  40.  
  41. $url = file('tab.txt'); //wczytujemy sobie tablice adresow url do obsluzenia
  42. $browser = &new SimpleBrowser(); //klasa sluząca do wysylania parametrów post do strony, kiedy adresy url byly zdefiniowane w tablicy wszystko bylo ok
  43. $policz = zwroc1('id_precle.txt'); //odczytujemy wskaznik przesuniecia
  44.  
  45. for ($i=$policz; $i<$policz+$dodaj; $i++) { //obslugujemy tyle adresow ile ma parametr $dodaj domyslnie = 4
  46.  
  47.  
  48.  
  49. $comment = $url[$i].'/strona.php';
  50. echo 'Wyslalem dane post do stron: ' .$url[$i]. '<br>';
  51.  
  52. $html = $browser->post($comment, $param);
  53. }
  54.  
  55. $policz = zapisuj('id_precle.txt', $dodaj); //zapisujemy wartosc powiekszona o $dodaj domyslnie 4
  56. }
  57.  
  58. ppp(4);
Fifi209
Na pierwszy rzut oka:

Funkcja zapisuj mogłaby wyglądać tak:

  1. function zapisuj($plik, $ile=1) {
  2.  
  3. if (!file_exists($plik)) {
  4. }
  5.  
  6. $l = count(file_get_contents($plik))+$ile;
  7.  
  8. file_put_contents($plik, $l);
  9. return $l
  10.  
amii
Niestety dalej nic, strasznie dziwna sprawa bo jak wprowadzę adresy do tablicy i zdefiniuje w funkcji ppp to jest wszystko OK.

  1. $url = array('http://strona.pl', 'http://strona1.pl', 'http://strona2.pl', 'http://strona3.pl');


A dlaczego jeśli dam zamiast tego ->
  1. $url = file('tab.txt');

obsługuje tylko ostatni adres z listy
skarabe.pl
Cytat(amii @ 30.07.2010, 14:40:59 ) *
Niestety dalej nic, strasznie dziwna sprawa bo jak wprowadzę adresy do tablicy i zdefiniuje w funkcji ppp to jest wszystko OK.

  1. $url = array('http://strona.pl', 'http://strona1.pl', 'http://strona2.pl', 'http://strona3.pl');


A dlaczego jeśli dam zamiast tego ->
  1. $url = file('tab.txt');

obsługuje tylko ostatni adres z listy

Czy adresy w pliku występują po jednym w linii?
amii
OK już działa smile.gif
Rozwiązanie:
  1. $url[$i] = trim($url[$i]);
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.