Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Operacje na plikach tekstowych.
fenox
post 2.04.2008, 10:53:37
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.12.2007

Ostrzeżenie: (0%)
-----


Witam,

Chcę, żeby skrypt pobierał zmienną z formularza, a następnie wrzucał mi ją do pliku tekstowego hardwareid.txt TYLKO, gdy jej tam jeszcze nie ma. Napisałem taki oto kodzik:
  1. <?php
  2. $path = &#092;"../hardwareid.txt\";
  3. $ile = count(file($path));
  4. $petla = 0;
  5.  
  6. while ($petla <= $ile)
  7. {
  8. $handle = fopen($path, &#092;"r\");
  9. $lines = file($path); 
  10. $checkit = htmlentities($lines[$petla]);
  11. if ($hardwareid == $checkit)
  12. {
  13. $hardwarestate = &#092;"HardwareID był już użyty!\";
  14. break;
  15. }
  16. if ($petla == $ile and $hardwareid != $checkit)
  17. {
  18. $hardwarestate = &#092;"HardwareID nie był użyty!\";
  19. file_InsertLine($path, $hardwareid);
  20. }
  21. $petla++;
  22. }
  23. ?>

Jednak nie bardzo chce mi to działać - zapisuje mi zmienną $hardwareid do pliku bez względu, czy ona już tam jest, czy też nie. Proszę o jakieś wskazówki. Zaznaczam też, że na codzień kodzę w czymś innym, aktualnie męczę się nad stroną mojego projektu, więc powyższy kod może być trochę nieudolnie napisany ; )

Pozdrawiam!

Ten post edytował fenox 2.04.2008, 10:54:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pilsener
post 2.04.2008, 11:17:55
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Zakładam, że zmienna ma być dopisywana do pliku, jeśli w nim nie występuje?

  1. <?php
  2. $tablica = file('plik.txt'); //wrzucamy plik do tablicy
  3. if (!in_array("zmienna", $tablica)) { //sprawdzamy, czy wartosc nie istnieje w tablicy
  4. $plik=fopen('plik.txt', 'a'); //otwieramy plik w trybie dopisywania
  5. flock($plik, 2); //blokujemy na czas zapisu
  6. $puts = $zmienna."\n";
  7. fputs($plik, $puts);
  8. flock($plik, 3);
  9. fclose($plik);
  10. }
  11. ?>
Go to the top of the page
+Quote Post
--fenox--
post 2.04.2008, 11:33:15
Post #3





Goście







Kurcze no, coś tu jest źle. Zawsze zapisze do tego pliku zmienną, nawet jak ona już tam siedzi :\

  1. <?php
  2. $path = "/srv/www/vhosts/anarchybot.na11.pl/httpdocs/notyet/hardwareid.txt";
  3.  
  4. $tablica = file($path); //wrzucamy plik do tablicy
  5. if (!in_array($hardwareid, $tablica)) 
  6. {
  7. $plik=fopen($path, 'a'); //otwieramy plik w trybie dopisywania
  8. flock($plik, 2);
  9. $puts = $hardwareid."\n";
  10. fwrite($plik, $puts);
  11. flock($plik, 3);
  12. fclose($plik);
  13. $hardwarestate = "Ten HardwareID nie był jeszcze użyty!";
  14. }
  15. else
  16. {
  17. $hardwarestate = "Ten HardwareID ZOSTAŁ już użyty!";
  18. }
  19. ?>


Co robię źle? :\
Go to the top of the page
+Quote Post
Kicok
post 2.04.2008, 12:18:32
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


w pliku nie siedzi $hardwareid tylko $hardwareid."\n"


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
fenox
post 2.04.2008, 12:28:32
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.12.2007

Ostrzeżenie: (0%)
-----


Dzięki wielkie! Teraz działa : )

Pozdrawiam!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:39