Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie w pliku
Forum PHP.pl > Forum > PHP
matrix14
Witam ! Aktualnie napisalem kod ktory do pliku daty.txt wkleja np. 20 godzin roznych tzn.
22:49
22:50
22:51
22:52
22:53
itd. A traz chce napisac skrypt ktory po uruhomieniu do zmiennej pobierze aktualna godzine i minute i potem przeszuka plik daty w poszukiwaniu tej godziny. Aktualnie albo usunie polowe pliku ( 0_o ) albo nci nie sunie ...
  1. <?php
  2. $data = date("H:i");
  3. $dane = file('daty.txt');
  4. for($i=0;$i<count($dane);$i++) {
  5. }
  6. if ($i!=$data) {
  7. $dane = file('daty.txt');
  8. $file=fopen('daty.txt','w');
  9. unset($dane[$i]);
  10. fwrite($file,str_replace("\r","",join('',$dane)));
  11. fclose($file);
  12. }
  13. ?>


Potrzebuje chociaz naprowadzenia na wlasciwy kierunek ^^ Zaczynam z PHP wiec dlatego pewno tego nie umiem ;( Ale prosilbym na naprowadzanie. A wtedy przeszuakm Googla, Manuala itd. ;D
muk4
  1. $data = date("H:i");
  2. $dane = file('daty.txt', FILE_IGNORE_NEW_LINES);
  3. foreach($dane as $linia){
  4. if($linia == $data){
  5. echo 'Znalazlem date!';
  6. break;
  7. }
  8. }
matrix14
Ykhm narazie to sie meczy by to podpiac pod usuwanie danych 0_o

  1. $data = date("H:i");
  2. $dane = file('daty.txt', FILE_IGNORE_NEW_LINES);
  3. foreach($dane as $linia){
  4. if($linia == $data){
  5. $file=fopen('daty.txt','w');
  6. unset($dane[$linia]);
  7. fwrite($file,str_replace("\r","",join('',$dane)));
  8. fclose($file);
  9. break;
  10. }
  11. }

Jak tak to z 20 lini i w kazdej inna goddzina to robi wszystko w jednej lini ;/ A jak na koncu kazdej lini wpliku dodam \r to znowu nic nie robi ;/
muk4
Zobacz co się zmieniło:
  1. $data = date("H:i");
  2. $dane = file('daty.txt', FILE_IGNORE_NEW_LINES);
  3. foreach($dane as $nr_linii => $linia){ #trzeba mieć numer linii
  4. if($linia == $data){
  5. echo 'Znalazlem date!';
  6. unset($dane[$nr_linii]); #usuwam linijkę
  7. break;
  8. }
  9. }
  10. $dane_string = implode($dane); #zamieniamy tablicę na string który można zapisać do pliku
  11. file_put_contents('dane.txt', $dane_string); #zapis do pliku
matrix14
Dzieki wink.gif Teraz musze tylko pomyslec jak na koncu kazdej lini dodac \n ^^
muk4
Możesz usunąć flagę z file i trimować zmienną.
Zamień
  1. $dane = file('daty.txt', FILE_IGNORE_NEW_LINES);
  2. # na
  3. $dane = file('daty.txt');

i
  1. if($linia == $data){
  2. # na
  3. if(trim($linia) == $data){


trim() usuwa znak nowej linii na końcu zmiennej ale tylko do porównania - w tablicy zostaje bez zmian.
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.