Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis/odczyt/edycja pliku ze zmiennymi
Forum PHP.pl > Forum > Przedszkole
kubax33
Mam plik ustawienia.inc

w którym znajdują się zmienne:

  1. <?
  2. $iloscwpisow = "10";
  3. $stopka = "Autor XXX";
  4. $komunikat = "tak";
  5. ?>


i chciałbym dokonać oczytania zmiennej, a następnie zapisać zmodyfikowane zmienne do pliku ustawienia.inc
WIem, że trochę na pewno inaczej odbywa się to niż przy zapisie do pliku tekstowego.
Proszę o pomoc i sugestie ewentualnie coś na czym mógłbym się wzorować.
fate
Nie.

Zapisujesz jako string:

  1. $zmiennadozapisu = '
  2. <?
  3. \$iloscwpisow = "10";
  4. \$stopka = "Autor XXX";
  5. \$komunikat = "tak";
  6. ?>
  7. ';


Stosujesz znak ucieczki "\" przed $

a potem

file_put_contents

Ewentualnie:

  1. $zmiennadozapisu = "
  2. <?
  3. \$iloscwpisow = \"10\";
  4. \$stopka = \"Autor XXX\";
  5. \$komunikat = \"tak\";
  6. ?>
  7. ";


Ale więcej machania tyle ze to są kiepskie rozwiazania.

Ogólnie po co zapisujesz zmienne w pliku?
Możesz np zapisać tylko dane każde w nowej linii "\r\n"
10
Autor
tak
i funkcją $tablica = file
wczytaj je do tablicy a potem wywolujesz
$tablica[0];$tablica[1];$tablica[2];
10, Autor, tak

lub baza danych
rocktech.pl
Witam.

  1. function getVars() {
  2. include 'ustawienia.inc';
  3. return get_defined_vars();
  4. }
  5.  
  6. print_r(getVars());


Zerknij na funkcję var_export.

Generalnie motyw z takim zapisem edytowalnej konfiguracji jest słaby. Pliki .ini. , .xml lub .json lepiej się sprawdzą.

  1. iloscwpisow = 10
  2. stopka = Autor XXX
  3. komunikat = tak


  1. $ini = parse_ini_file('ustawienia.ini');
  2. print_r($ini);


[JAVASCRIPT] pobierz, plaintext
  1. {
  2. "iloscwpisow": 10,
  3. "stopka": "Autor XXX",
  4. "komunikat": "tak"
  5. }
[JAVASCRIPT] pobierz, plaintext


  1. $json = json_decode(file_get_contents('ustawienia.json');
  2. print_r($json);
kubax33
Cytat(fate @ 21.08.2013, 14:26:11 ) *
Nie.

Zapisujesz jako string:

  1. $zmiennadozapisu = '
  2. <?
  3. \$iloscwpisow = "10";
  4. \$stopka = "Autor XXX";
  5. \$komunikat = "tak";
  6. ?>
  7. ';


Stosujesz znak ucieczki "\" przed $

a potem

file_put_contents

Ewentualnie:

  1. $zmiennadozapisu = "
  2. <?
  3. \$iloscwpisow = \"10\";
  4. \$stopka = \"Autor XXX\";
  5. \$komunikat = \"tak\";
  6. ?>
  7. ";


Ale więcej machania tyle ze to są kiepskie rozwiazania.

Ogólnie po co zapisujesz zmienne w pliku?
Możesz np zapisać tylko dane każde w nowej linii "\r\n"
10
Autor
tak
i funkcją $tablica = file
wczytaj je do tablicy a potem wywolujesz
$tablica[0];$tablica[1];$tablica[2];
10, Autor, tak

lub baza danych


Zmienne zapisuje po to aby odczytywać je z includowanego pliku w innych częściach strony. Mam całą stronę opartą o bazę na plikach tekstowych wiem, że to nie praktyczne, ale służu to tylko do prywatnych celów i spełnia swoje zadanie.

Niestety znak ucieczki jest nie praktyczny "/"ponieważ wtedy plik ustawienia.inc.php wygląda tak:

  1. <?
  2. \$iloscwpisow = "10";
  3. \$stopka = "Autor XXX";
  4. \$komunikat = "tak";
  5. ?>


i nie idzie z niego nic odczytać. Ten sposób jest ok tylko jak zrobić, aby zapisane dane były w czystej postaci tj:

  1. <?
  2. $iloscwpisow = "10";
  3. $stopka = "Autor XXX";
  4. $komunikat = "tak";
  5. ?>

fate
Jaki niepraktyczny jak to jedyny bezposredni sposob
2 przyklad byl ok:

  1. $zmiennadozapisu = "
  2. <?
  3. \$iloscwpisow = \"10\";
  4. \$stopka = \"Autor XXX\";
  5. \$komunikat = \"tak\";
  6. ?>
  7. ";


to działa tak samo:

  1. $zmiennadozapisu = "
  2. <?
  3. \$iloscwpisow = '10';
  4. \$stopka = 'Autor XXX';
  5. \$komunikat = 'tak';
  6. ?>
  7. ";


Nie wierze że ja to testuje zamiast Ciebie tiredsmiley.gif
  1. file_put_contents(test.dat,$zmiennadozapisu);




Ty zapisuje normalnie tak:

  1. $zmiennadozapisu = '
  2. <?
  3. $iloscwpisow = "10";
  4. $stopka = "Autor XXX";
  5. $komunikat = "tak";
  6. ?>
  7. ';
  8.  
  9. file_put_contents(test.dat,$zmiennadozapisu);


facepalmxd.gif
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.