Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeszukiwanie pliku txt
Forum PHP.pl > Forum > PHP
BatGraf
Cześć smile.gif
Męczę temat od wczoraj i poproszę Was jednak o nakierowanie na właściwy kierunek smile.gif

Chcę zrobić po kolei:
1. formularz przesyła kod jednorazowy
2. jeśli kod jest w pliku "baza.txt", to wyświetla info że jest i zapisuje ten kod do do pliku "wykorzystane.txt" i usuwa kod z pliku "baza.txt"
3. jeśli nie - wysyła do diabla smile.gif

Mam tak:
  1. $tablica = file("baza.txt");
  2. for ($i=0; $i<count($tablica); $i++)
  3. {
  4. echo $tablica[$i]."<br>";
  5. }


i to działa, dostaję tablicę, ale za czorta nie mogę wyłuskać z tablicy przesłanego kodu.
Próbowałem funkcji array_search ale nie wiem czy źle robię czy nieodpowiednią funkcję wybrałem.
Proszę - pomóżcie smile.gif

To nie działa - pokazuje tylko pierwsze słowo z pliku:

  1. <?php
  2. $tablica = file("baza.txt");
  3. for ($i=0; $i<count($tablica); $i++)
  4. {
  5. echo $tablica[$i]."<br>";
  6. }
  7.  
  8.  
  9. $result = array_search('nowe', $tablica);
  10. echo $result; // 'imie'
  11. echo $tablica[$result]; // 'zdzisiu';
  12. ?>


zawartość "baza.txt"

  1. szukane
  2. nowe
  3. stare
CuteOne
//
piotrooo89
  1. $tab = file('baza.txt', FILE_IGNORE_NEW_LINES);
  2.  
  3. $search = array_search('szukane', $tab);
  4.  
  5. if ( is_numeric($search) )
  6. {
  7. echo $tab[$search].PHP_EOL;
  8.  
  9. file_put_contents('wykorzystane.txt', $tab[$search].PHP_EOL, FILE_APPEND);
  10. unset($tab[$search]);
  11.  
  12. file_put_contents('baza.txt', implode(PHP_EOL, $tab));
  13. }
BatGraf
Dzięki smile.gif Działa

Naprawdę, wielkie dzięki za pomoc. Rozumiem prawie wszystko po za tymi kawałkami które zaznaczyłem. Nie wiem - jesli masz dobry humor i chec, powiedz co to itd bo nie miałem z tym jeszcze stycznosci, a wujek google nie chce mi podpowiedzieć smile.gif albo zle szukam.
Jesli nie masz ochoty na wyjasnienie - spoko - i tak bardzo mi pomogłeś smile.gif

  1. $tab = file('baza.txt', /* TO */FILE_IGNORE_NEW_LINES/* TO */);
  2.  
  3. $search = array_search('szukane', $tab);
  4.  
  5. if ( is_numeric($search) )
  6. {
  7. echo $tab[$search]./* TO */PHP_EOL/* TO */;
  8.  
  9. file_put_contents('wykorzystane.txt', $tab[$search]./* TO */PHP_EOL, FILE_APPEND/* TO */);
  10. unset($tab[$search]);
  11.  
  12. file_put_contents('baza.txt', implode(/* TO /*PHP_EOL/* TO */ $tab));
  13. }
piotrooo89
PHP_EOL - Znacznik nowej linii
FILE_APPEND - Dodawanie na koncu pliki nie nadpisuje tylko dopisuje
FILE_IGNORE_NEW_LINES - usuwa z konca kazdej lini wczytanej za pomoca funkcji file znacznik nowej lini

Tak czy inaczej czytaj manual!!
BatGraf
nie wiem czemu, ale wczesniej nie znalazłem dobrego opisu, faktycznie w manualu jest, że to flaga itp
No, ale dzięki za cierpliwość smile.gif i wyjaśnienia
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.