Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis pliku
Forum PHP.pl > Forum > Przedszkole
Kamil9132
Witam
Jakiej komendy użyć do odczytu pliku z serwera i zapisania go pod inną nazwą.
CuteOne
  1.  
  2. $file = file_get_contents('nazwa_pliku.php'); //odczyt
  3. file_put_contents('nowa_nazwa_pliku.php', $file); //zapis


ewentualnie fopen / fread / fwrite -> zobacz w manualu
Kamil9132
Zrobiłem tak i nie działa sad.gif
  1. $nazwa = $_GET['imie'];
  2.  
  3. $nazwas = "./upload/$nazwa";
  4.  
  5. $szablon = "./pobieranie.php";
  6.  
  7.  
  8. $file = file_get_contents($szablon); //odczyt
  9. file_put_contents($nazwas, $file);
  10. echo "działa :)" //zapis


CuteOne
Wrzuć wszystkie pliki do jednego folderu

  1. $nazwa = $_GET['imie'];
  2. $szablon = "pobieranie.php";
  3.  
  4. $file = file_get_contents($szablon); //odczyt
  5. file_put_contents($nazwa.'.php', $file);


Jak widzisz działa.. co oznacza, że MUSISZ opanować bardzo skomplikowaną rzecz - ścieżki do plików

google i jazda
Kamil9132
Ok działa
Teraz trochę inne pytanie.
Czy da się zrobić wysyłanie informacji z formularza do dwóch plików ?
CuteOne
Bezpośrednio formularz wysyła dane tylko do jednego pliku określonego w action="" ale istnieje łatwa metoda na przekazanie danych dalej:

1. Utwórz katalog np. test
2. Utwórz w nim plik html o byle akiej nazwie np. test.html
  1. <form action="odbiorca.php" method="post">
  2. <input type="text" name="txt">
  3. <input type="submit" name="submit" value="send">


3. W tym samym katalogu utwórz kolejny plik: obiorca.php i wklej do niego ten kod
  1. <?php
  2. if(!empty($_POST['txt'])) {
  3.  
  4. echo 'Wiadomość z pliku odbiorca.php '.$_POST['txt'].'<br>';
  5.  
  6. include 'odbiorca2.php'; // załączenie drugiego pliku, który staje się częścią pliku głównego - dzięki niemu wszystko co należy do pliku głównego należy do pliku includowanego ;]
  7. }
  8. ?>


3. Utwórz ostatni plik o nazwie odbiorca2.php (w tym samym katalogu) i wklej do niego ten kod:
  1. <?php
  2. if(!empty($_POST['txt'])) {
  3.  
  4. echo 'Wiadomość z pliku odbiorca2.php '.$_POST['txt'];
  5.  
  6. include 'odbiorca2.php'; // załączenie drugiego pliku, który staje się częścią pliku głównego
  7. }
  8. ?>


4. Odpal plik html w przeglądarce wyślij coś formularzem i patrz co się wyświetli

Kamil9132
Wyskakuje wiadomość z pierwszego pliku ,ale w drugim pojawia się błąd na linii 4
W linii 4 jest tyko to:
  1. include 'pobieranie.php'$imie = $_POST['imie'];
CuteOne
3. Utwórz ostatni plik o nazwie odbiorca2.php (w tym samym katalogu) i wklej do niego ten kod:
  1. <?php
  2. if(!empty($_POST['txt'])) {
  3.  
  4. echo 'Wiadomość z pliku odbiorca2.php '.$_POST['txt'];
  5. }
  6. ?>


nie usunąłem include ;]
Kamil9132
Jeszcze jedno czy da się zapisać include lub coś o podobnych właściwościach pod jakąś zmienną ?
Czy da się wyszukać rekord jeżeli ciąg znaków jest taki sam jak napisany ?
CuteOne
nie bardzo rozumiem o co chodzi... do zmiennej możesz zapisać nazwę pliku, którą chcesz includować
  1. $to_include = 'plik_do_include.php';
  2. include $to_include;


Cytat
Czy da się wyszukać rekord jeżeli ciąg znaków jest taki sam jak napisany ?

że co?


Kamil9132
Chodzi mi o to żeby w funkcji echo użyć include ,tyle że w echo można jedynie wywołać zmienną.

Znalazłem rozwiązanie na to drugie pytanie smile.gif

I jeszcze jedno pytanie czy da się odebrać informacje z formularza i je zapisać tak żeby wyświetliły po ponownym załadowaniu strony ?
CuteOne
1. Nie da się
2. $_SESSION - http://www.tizag.com/phpT/phpsessions.php

Kamil9132
A jest coś podobnego do include ,które można wywołać w echo ?
Tylko nie wiem jak użyć sesji.
Zrobiłem takie kod ale nie działa.
  1. $_SESSION['views'] = $_POST['imie'];
  2.  
  3. echo "Wiadomość z pliku = ". $_SESSION['views'];
Raffuss
Co do zapamiętania nie tylko $_SESSION ale także możesz w tym celu przy walidacji danych dołączyć zmienną, którą w przypadku isset($zmienna) wyświetlisz w danym polu
Kamil9132
czyli jak to dokładnie zrobić ,bo trochę przeczytałem o tych sesjach ale nie za bardzo to zrozumiałem
CuteOne
Może łatwiej nam będzie Ci pomóc gdy opiszesz co dokładnie chcesz zrobić

1.
  1. $_SESSION['views'] = $_POST['imie'];
  2.  
  3. echo "Wiadomość z pliku = ". $_SESSION['views'];


2. sesje to mechanizm zapisu danych, które trwają aż do momentu zamknięcia przeglądarki. Nie zapisuj do nich zbędnych rzeczy bo tylko zamulisz serwer

3. do "zbędnych rzeczy" służą bazy danych np. MySQL
Kamil9132
Opiszę teraz dokładnie to co chcę osiągnąć.
Mam formularz ,który wysyła dane do dwóch plików (dzięki CuteOne). W jednym pliku mam dodawanie do bazy ,a w drugim tworzenie podstrony.
W drugim pliku chcę zapisać na stałe informacje z formularza ,a potem znaleźć rekord ,w którym rekord jest taki sam jak informacja z formularza
(szukam funkcją LIKE).
Myślę że w miarę dokładnie to opisałem.
CuteOne
mam teraz chwile czasu więc jak chcesz pomocy to pisz na gg 4176892
Kamil9132
Ok Cute One pomógł mi w tej pierwszej sprawie smile.gif
Druga sprawa jest bardzo prosta.
Chodzi mi o to jaka funkcja jest odpowiednikiem include ,która da się zapisać i wywołać za pomocą zmiennej.
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.