Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zawartosc pliku txt jako zmienna
Forum PHP.pl > Forum > PHP
ProNeO
Witam, jestem "świeży" w php i mam nasteoujacy problem.
Zajmuję sie własnie pisaniem ankiety. Zrobilem juz wyswietlanie pytań. Odpowiedzi userów zapisywane sa w pliku .txt ktorego nazwa jest adres IP komputera z ktorego byla wykonana ankieta. Ten sam adres zostaje dodany do pliku adresy.txt. Ten plik potrzebny jest do pobierania IP , ktore jako nazwa pliku otwierane jest przez funkcje. Na sam koniec ankiety wyswietlane są wyniki głosowania. Tzn powinny byc wyswietlane ponieważ nie dziala mi ten skrypt. Program otwiera plik adresy.txt i pobiera kazdy adres IP jaki tam jest i powinien go wykorzystac jako zmienna i otworzyc plik o nazwie tej samej co adres IP, ale tak sie nie dzieje. Czy mozna jakoś daną z pliku jako zmienna ustawic?

Z góry dzieki za odpowiedz:)
wookieb
Temat: Jak poprawnie zatytulowac watek
kabexxx
Powinno być chyba tak:
WCZYTANIE
  1. $ip = file('nazwapliku.txt')

daniofantasy
zapisuj sobie do pliku tak:

  1. $dane[]='127.0.0.1';
  2. $dane[]='192.168.0.1';


i potem jak zaladujesz plik do zmiennej trzasnij wszystko evalem:

  1. $dane = twoja_funkcja_ladowania($plik);
  2. @eval($dane);


i masz calosc w tablicy - malpka zeby nie sralo bledami - ewentualnie uzyj try {} catch {} zeby wiedziec czy sie poprawnie zaladowalo
ProNeO
hehe skomplikowane rzeczy mi mowicie:P
O to kod tego skryptu :

  1. <html>
  2. <head>
  3.  
  4. </head>
  5. <body>
  6.  
  7. <?php
  8.  
  9. $adres=fopen('adres.txt', 'r'); //otwiera plik z adresami IP
  10. while (!feof($adres)) // czyta do konca plik
  11. {
  12. $a=fgets($adres); //$a pobiera pierwszy adres z pliku
  13. echo $a."<br>"; // wyświetla ten adres w celu sprawdzenia poprawności kodu
  14.  
  15. if ($a==null) // sprawdza czy $a jest pusta(w wypadku gry bedzie juz koniec pliku adres.ttx)
  16. {
  17. break; //zatrzymuje skrypt
  18. }
  19. else
  20. {
  21. $plik=fopen("$a", 'r'); //i tu jest problem, $plik powinna otworzyć plik , którego nazwę pobrała by z pliku adres.txt
  22. echo $plik; //kontrola otwarcia pliku
  23. while (!feof($plik)) //odczytuje plik do konca
  24. {
  25. $nrpyt=fgets($plik); //w tych plikach zapisywane sa w osobnych linikjach numer pytania i numer odpowiedzi stad takie czytanie
  26. $nrodp=fgets($plik); // to samo co wyzej
  27. echo $nrpyt."<br>"; // wyswietlanie numeru pytania
  28. echo $nrodp."<br>"; //wyswietlanie odpowiedzi na pytanie
  29. }
  30. fclose($plik); // zamkniecie pliku
  31. }
  32. }
  33. fclose($adres); //zamkniecie pliku
  34. ?>
  35. </body>
  36. </html>


postarałem sie wam wytlumaczyc kod mojego skryptu, jesli bedize potrzebowali zawartosci jakiegos pliku jeszcze to wstawie.
A problem jest taki ze $plik nie chce otwierac pliku o nazwie $a.
crocodillo
  1. $plik=fopen(trim($a), 'r'); //i tu jest problem, $plik powinna otworzyć plik , którego nazwę pobrała by z pliku adres.txt


Reszty nie sprawdzałem, bo o ten kawałek Ci chodziło


Cytat(ProNeO @ 19.03.2012, 22:34:24 ) *
hehe skomplikowane rzeczy mi mowicie:P



Nie skomplikowane, tylko strasznie dziwnie zakręcone. To co daniofantasy napisał można przyrównać do obliczania 2+2 za pomocą funkcji trygonometrycznych
ProNeO
crocodillo dziekuje ci, twoja rada dziala:)
Ale mam jeszcze jedna prozbe, moglbys mi wytlumaczyc na czym polega ta funkcja? Bo co z tego ze stosuje a nie wiem jak dziala:)
crocodillo
Cytat(ProNeO @ 24.03.2012, 20:29:26 ) *
crocodillo dziekuje ci, twoja rada dziala:)
Ale mam jeszcze jedna prozbe, moglbys mi wytlumaczyc na czym polega ta funkcja? Bo co z tego ze stosuje a nie wiem jak dziala:)


trim() obcina białe znaki (spacje, znak nowej linii itp) na początku i końcu ciągu. Miałeś w kodzie taką linijkę:
  1. $a=fgets($adres); //$a pobiera pierwszy adres z pliku
, a funkcja fgets() pobiera też znak nowej linii, dlatego trzeba było przyciąć.
ProNeO
aha, dziekuje za wytlumaczenie:)
mam jeszcze jeden problem

  1. $a=0;
  2. while($a>=12)
  3. {
  4.  
  5. $pytanie=fgets($pyt);
  6. if ($a=1)
  7. {
  8. $pyt1==fgets($pyt);
  9. }
  10. if ($a=5)
  11. {
  12. $pyt2==fgets($pyt);
  13. }
  14. if ($a=9)
  15. {
  16. $pyt3==fgets($pyt);
  17. }
  18. $a++;
  19. }

nie rozumiem co tutaj nie dziala. ma mi przeczytac plik i wyciagnac z niego odpowiednie linijki ale nie wyciaga nic.
Niktoś
Spróbuj:
while($a<=12)
ProNeO
Dziekuje masz racje , zawsze mi sie mylilo to:P
Probowałem tak jak mowisz tylko wziolem $a=<12:P
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.