Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zapisywanie kodu w plikach poprzez fwrite()
coomler
post 29.07.2010, 20:13:20
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 26.06.2010

Ostrzeżenie: (10%)
X----


Witam,
na jednej stronie mam cztery formularze, z czego jeden jest żeby wprowadzić dane do połączenia z bazą, a pozostałe trzy z innymi ustawieniami. Zapisuję je do plików za pomocą tytułowej funkcji - fwrite(). Mam cztery pliki, jednak liczbę chciałbym zredukować do dwóch, na bazę i na pozostałe ustawienia. Załóżmy pierwszy formularz uruchamia skrypt, który tworzy plik db.php z danymi dostępowymi do bazy, a pozostałe trzy tworzę również jeden plik, w senesie jeden, nie po jednym.

Teraz przejdźmy do tych trzech formularzy.

  1. pierwszy formularz zapisuje wartość zmiennej $x
  2. pierwszy formularz zapisuje wartość zmiennej $y
  3. pierwszy formularz zapisuje wartość zmiennej $z


Wszystko zapisywane do jednego pliku przez jeden skrypt, ewentualnie trzy skrypty, ale do jednego pliku. fwrite() umożliwia dodawanie danych na końcu, bądź nadpisywanie ich. Ja chciałbym natomiast, aby przy wysłaniu dajmy formularza drugiego, została zmieniona tylko zmienna $y, a reszta pozostała bez zmian. Można powiedzieć to również w ten sposób, każdy z trzech formularzy miałby w pliku z ustawieniami swoją sekcje(linię) i nie wychodziłby poza nią, czyli wysyłam dane z drugiego formularz, który odwołuje się do skryptu, który wie, że ma zapisać dane w 2 drugiej linijce pliku.

Jest taka możliwość?

I jeszcze jedno, zestawik fopen, fwrite, fclose, czy file_put_contents?
Go to the top of the page
+Quote Post
skarabe.pl
post 29.07.2010, 20:37:28
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 49
Dołączył: 29.07.2010

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


file_get_contents(), file_put_contents(), ew. zamiast tego pierwszego file() (jeśli wolisz odwoływać się do numeru wiersza zamiast np. wyszukiwać po stringu). Fopen się do tego nie nadaje.

Czy formularze są sekwencyjne? Tj. składają się na jedną sesję konfiguracji? Bo jeśli tak, to może warto by było zbierać wszystkie dane w jednym miejscu (sesji właśnie) i na samym końcu zapisać plik konfiguracyjny linijka po linijce?

Możesz zrobić jeszcze inaczej wykorzystując jeden plik pośredniczący, zawierający tablicę asocjacyjną z wartościami zmiennych, które chcesz później wypluć w plik konfiguracyjny, coś tego typu:

  1. if (file_exists('swap.php')) {
  2. $data = include 'swap.php';
  3. } else {
  4. $data = array();
  5. }
  6.  
  7. $data['x'] = 'costam';
  8. $data['y'] = 'pstrostam';
  9.  
  10. file_put_contents('swap.php', '<' . '?php return ' . var_export($data, true) . ';');


Możliwości masz sporo :)
Go to the top of the page
+Quote Post
everth
post 29.07.2010, 20:46:27
Post #3





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Może tak prościej przez to


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
coomler
post 29.07.2010, 20:51:40
Post #4





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 26.06.2010

Ostrzeżenie: (10%)
X----


Bardzo dobre pomysły! Muszę przyznać, że pomysł z tablicami wydaje się dobry. Spróbuję swoich sił i dam znać, najwcześniej jednak jutro.
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: 14.07.2025 - 09:30