Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Tworzenie pliku
terreska
post 24.03.2007, 23:27:24
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Szukałam... bezskutecznie sad.gif
Jaka komenda w php służy do tworzenia pliku?
Go to the top of the page
+Quote Post
strife
post 24.03.2007, 23:31:26
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(terreska @ 24.03.2007, 23:27:24 ) *
Szukałam... bezskutecznie sad.gif
Jaka komenda w php służy do tworzenia pliku?


Cześć Tereska biggrin.gif

Poczytaj o fopen" title="Zobacz w manualu PHP" target="_manual, file_put_contents" title="Zobacz w manualu PHP" target="_manual.

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
mike
post 24.03.2007, 23:48:00
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Chyba lepiej touch()
Go to the top of the page
+Quote Post
terreska
post 25.03.2007, 08:34:26
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Cytat(strife @ 25.03.2007, 00:31:26 ) *
Cześć Tereska biggrin.gif


Chyba ktoś ogląda za dużo filmów tongue.gif

Touch() zdało egzamin, dzięki.
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 10:02:14
Post #5





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


a da się zrobić coś takiego żeby tworzyć np plik html na podstawie kodu wpisanego z textarea?


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Cienki1980
post 25.03.2007, 10:08:04
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(jarmiar @ 25.03.2007, 11:02:14 ) *
a da się zrobić coś takiego żeby tworzyć np plik html na podstawie kodu wpisanego z textarea?


Tworzysz plik *.html i zapisujesz do niego zawartość textarea.... chyba, że myślisz o czymś innym


--------------------
404
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 10:09:43
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


jak zrobić to w php aby stworzył mi taki plik?


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Cienki1980
post 25.03.2007, 10:11:39
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(jarmiar @ 25.03.2007, 11:09:43 ) *
jak zrobić to w php aby stworzył mi taki plik?

Trzeba zaznajomić się z funkcjami:
fopen" title="Zobacz w manualu PHP" target="_manual
fwrite" title="Zobacz w manualu PHP" target="_manual ub file_put_contents" title="Zobacz w manualu PHP" target="_manual
fclose" title="Zobacz w manualu PHP" target="_manual


--------------------
404
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 10:13:48
Post #9





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


tak , znam te funkcje, ale one dopisują tylko zawartość do pliku, który istnieje.
a ja chcę stworzyć plik, a dopiero poźniej dopisać do niego wartość


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
mike
post 25.03.2007, 10:23:20
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(jarmiar @ 25.03.2007, 11:13:48 ) *
(...) a ja chcę stworzyć plik, a dopiero poźniej dopisać do niego wartość
To przeczytaj ten wątek od początku mad.gif
Nazwa tej funkcji już padła.
Go to the top of the page
+Quote Post
Cienki1980
post 25.03.2007, 11:41:36
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(jarmiar @ 25.03.2007, 11:13:48 ) *
tak , znam te funkcje, ale one dopisują tylko zawartość do pliku, który istnieje.
a ja chcę stworzyć plik, a dopiero poźniej dopisać do niego wartość

Z tego co można wyczytać w manualu do funkcji fopen:
Cytat
w - Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.

No chyba, że to nie jest tworzenie pliku questionmark.gif


--------------------
404
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 12:28:16
Post #12





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


mam tutaj taki kod:
  1. <?
  2. $plik = $_POST['plik'];
  3. $zawartosc = $_POST['zawartosc'];
  4. function dodaj() {
  5. $dane = $zawartosc;
  6. $file = $plik;
  7.  
  8. $fp = fopen($file, "w");
  9.  
  10.  
  11. flock($fp, 2);
  12.  
  13. fwrite($fp, $dane);
  14.  
  15.  
  16. flock($fp, 3);
  17.  
  18. fclose($fp);
  19. }
  20.  
  21. $tworzenie = touch($plik);
  22. echo($tworzenie);
  23. if($tworzenie) {
  24.  
  25. dodaj();
  26. if(dodaj()) {
  27. echo('Stworzono plik');
  28. }
  29. else {
  30. echo('Błąd');
  31. }
  32. }
  33. ?>


tworzy mi plik o podanej nazwie ale już nie chcę dopisać do niego zawaretości textarea.
wyskakuje mi błąd:

Warning: flock(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 11

Warning: fwrite(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 13

Warning: flock(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 16

Warning: fclose(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 18

Warning: flock(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 11

Warning: fwrite(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 13

Warning: flock(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 16

Warning: fclose(): supplied argument is not a valid stream resource in /webpocket/wykonaj.php on line 18


w czym jest błąd?
poprawcie mi ten kod jeśli możecie.


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
mike
post 25.03.2007, 12:37:26
Post #13





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(jarmiar @ 25.03.2007, 13:28:16 ) *
poprawcie mi ten kod jeśli możecie.
Śnisz tongue.gif My Ci powiemy jak a Ty sam poprawisz tongue.gif

Próbujesz wewnątrz funkcji skorzystać ze zmiennej $plik do otworzenia pliku za pomocą fopen(). Tej zmiennej nie widać wewnątrz funkcji, stąd plik nie zostaje otworzony i dlatego flock() wywala błąd.

Poczytaj o zasięgu zmiennych

Ten post edytował mike_mech 25.03.2007, 12:37:48
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 12:41:25
Post #14





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


Cytat(mike_mech @ 25.03.2007, 12:37:26 ) *
Śnisz tongue.gif My Ci powiemy jak a Ty sam poprawisz tongue.gif

Próbujesz wewnątrz funkcji skorzystać ze zmiennej $plik do otworzenia pliku za pomocą fopen(). Tej zmiennej nie widać wewnątrz funkcji, stąd plik nie zostaje otworzony i dlatego flock() wywala błąd.

Poczytaj o zasięgu zmiennych


to ja już naprawdę nie mam pojęcia.

proszę napisz mi gotowy kod, będę bardzo wdzięczny


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
mike
post 25.03.2007, 12:45:21
Post #15





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Człowieku, więcej samodzielności!

Napisałeś posta 3 minuty po tym jak Ci odpowiedziałem. Zakładając że wciskałeś F5 co chwila to miałeś najwyżej 2 minuty na przeczytanie tego co Ci wysłałem i postaranie sie o poprawienie samemu.
Zrobiłeś to czy wyszedłeś z założenia, że nie wiesz, pojęczysz chwilę i dostaniesz gotowca? Odpowiedź jest prosta.

Żałosne.
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 12:49:16
Post #16





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


Cytat(mike_mech @ 25.03.2007, 12:45:21 ) *
Człowieku, więcej samodzielności!

Napisałeś posta 3 minuty po tym jak Ci odpowiedziałem. Zakładając że wciskałeś F5 co chwila to miałeś najwyżej 2 minuty na przeczytanie tego co Ci wysłałem i postaranie sie o poprawienie samemu.
Zrobiłeś to czy wyszedłeś z założenia, że nie wiesz, pojęczysz chwilę i dostaniesz gotowca? Odpowiedź jest prosta.

Żałosne.



poprawiłem swój kod dużo wcześniej bo zamieniłem na funkcję file_put_conents()

parser nie wywala błędu ale nie chce mi zapisac do utworzonego pliku nic.

oto mój kod
  1. <?
  2. $plik = $_POST['plik'];
  3. $zawartosc = $_POST['zawartosc'];
  4. function dodaj() {
  5. $plik = $_POST['plik'];
  6. $zawartosc = $_POST['zawartosc'];
  7. $dane = $zawartosc;
  8. $file = $plik;
  9.  
  10. file_put_contents($plik, $zawartosc);
  11. }
  12.  
  13. $tworzenie = touch($plik);
  14. echo($tworzenie);
  15. if($tworzenie) {
  16. chmod($plik, 0777);
  17. dodaj();
  18. if(dodaj()) {
  19. echo('Stworzono plik');
  20. }
  21. else {
  22. echo('Błąd');
  23. }
  24. }
  25. ?>


Ten post edytował jarmiar 25.03.2007, 12:50:36


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Cienki1980
post 25.03.2007, 17:23:05
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Hmm no nie wiem co Tobie tam nie pasuje, bo mi kod działa .. znaczy działa tak, że plik tworzy i zapisuje do niego zawartość.
Jedynym felerem jest to, że funkcja dodaj() nic nie zwraca i sprawdzając warunek w 18 linii zawsze będzie false i pokaże się komunikat "Błąd".

Zresztą w 17 linii wywołujesz funkcję dodaj() i robisz to w linii 18.


--------------------
404
Go to the top of the page
+Quote Post
jarmiar
post 25.03.2007, 17:44:19
Post #18





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


zrobiłem też jak ty mówiłeś i nie działa.

napisałem jeswzcze inny kod i tutaj mi nie działa.
może coś pomożesz

plik wykonaj.php

  1. <?
  2. if(auth()) {
  3. $uzytkownik = $_SESSION["USER_LOGIN"];
  4. $plik = $_POST['plik'];
  5. $zawartosc = $_POST['zawartosc'];
  6. $tworzenie = touch($uzytkownik."/".$plik);
  7. echo($tworzenie);
  8. chmod($uzytkownik."/".$plik, 0777);
  9. if($tworzenie) {
  10. echo "<form method=POST action=index.php?page=wykonaj2>
  11. <p>
  12. Plik $plik <input type=hidden name=plik value=$plik>&nbsp; utworzono poprawnie&nbsp; <br>
  13. Zawartość pliku którą chcesz wysłać:<br>
  14. <br>
  15. <textarea rows=14 name=zawartosc cols=41><html>
  16. <head>
  17. </head>
  18. <body>
  19. </body>
  20. </html></textarea><br>
  21. <input type=submit value=Dalej></p>
  22. </form>
  23. ";
  24. }
  25. else {
  26. echo('Nie można utworzyć pliku');
  27. }
  28. }
  29. else {
  30. echo('Zaloguj się');
  31. }
  32. ?>


plik wykonaj2.php

  1. <?
  2. if(auth()) {
  3. function zapisz() {
  4. $uzytkownik = $_SESSION["USER_LOGIN"];
  5. $dane = $_POST['zawartosc'];
  6. $file = $_POST['plik'];
  7. $fp = fopen($file, "w");
  8. flock($fp, 2);
  9. fwrite($fp, $dane);
  10. flock($fp, 3);
  11. fclose($fp);
  12. }
  13. if(zapisz()) {
  14. echo("Plik został utworzony poprawnie.<br> Możesz teraz zobaczyć swój plik <a href=$uzytkownik/$plik>tutaj</a>");
  15. }
  16. else {
  17. echo('Wystąpił błąd przy zapisie');
  18. }
  19. }
  20. else {
  21. echo('Zaloguj się');
  22. }
  23. ?>


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
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.08.2025 - 09:30