Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zapisywać dane do tablicy w pliku.txt
Forum PHP.pl > Forum > PHP
david8213
Mam plik.txt i w nim tablicę z danymi.

Dane z pliku.txt odczytuje za pomocą zmiennych
.$exp[0].
.$exp[1].
.$exp[2].

Jak edytować np zmienną w tablicy .$exp[1].
(dane znadują się w pliku.txt)
piotrooo89
dalej nie wiemy jak pobierasz dane. pokaż cześć pliku .txt i miejsce w którym realizujesz odczytywanie.
david8213
Plik.txt
Kod
aaaaaaa|bbbbbbb|14,12,2009 - 19:47:58|
cccccc|dddddddd|14,12,2009 - 19:47:53|
eeeeeee|fffffff|14,12,2009 - 19:47:51|
gggggg|hhhhhhh|14,12,2009 - 19:47:48|


Odczyt index.php
Kod
<?php
$file = file("plik.txt");
foreach($file as $value) {   //pętla odczytująca tablice
$exp = explode("|",$value);
echo " ".$exp[0]." ".$exp[1]." ".$exp[2]." ";
}
?>


Chciałbym zmienić np fffff na mmmmmmm
magnus
A może użyć json_encode/json_decode?
Albo np. SQLite albo innej bazy operującej na plikach tekstowych.
Bo generalnie nie jest problemem pobranie danych z pliku i ich zmiana, tylko ich zapisanie z powrotem do pliku.

W ostateczności po zmianie wartości w tablicy trzeba zrobić operacje odwrotne, tzn. połączyć wiersze przy pomocy join() a potem w pętli zapisać je do pliku przy pomocy fwrite().
david8213
tyle to wiem.
lecz jak to zrobić, na powyższym przykładzie
Crozin
serialize/unserialize, ewentualnie var_export.
Pilsener
Jak chcesz się męczyć na plikach to polecam:
http://www.forumweb.pl/viewtopic.php?t=39103

I jeśli plik to nie ma być baza danych, lecz coś w rodzaju pliku konfiguracyjnego (zawsze wczytywany w całości) to polecam funkcje serialize i unserialize:

  1. $tablica = unserialize(file_get_contents($plik)); //wczytujemy plik do tablicy
  2. $tablica[3] = 'abc'; //edytujemy tablicę
  3. file_put_contents($plik,serialize($tablica)); //zapisujemy plik


Pamiętaj jednak, że to jest dobre tylko dla małych plików, jeśli chcesz tak zrobić np. newsy czy artykuły to zaraz zawalisz całą dostępną pamięć.
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.