![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam ! mam pewien problem. Mam następujący kod:
Kod $plik = 'dane_03-07-2008.txt'; (pominięta część kodu) $fp = fopen($plik, "a"); @flock($fp, 2); @fwrite($fp, $dane1. ' || '. $dane2.' || '. $dane3. ' || ' . "\n"); @flock($fp, 3); @fclose($fp); Wiadomo, dane pobierane są ze zmiennych i zapisywane do pliku. Chodzi o to czy można zrobić coś takiego że jeżeli wielkość pliku z zapisywanymi danymi przekroczy określoną wielkość (np 1 MB) to automatycznie zapisywnie danych zostanie "zablokowane", zostanie utworzony nowy plik z nową datą utworzenia (np. dane_10-07-2008.txt) i do niego będą zapisywane kolejne dane. A gdy ten nowy osiągnie zadaną wielkość to zostanie utworzony nowy , itd ... Jestem kompletnie początkujący i szczerze mówiąc nie bardzo wiem jak to można zrobić, proszę o pomoc :-) Ten post edytował shreker 3.07.2008, 17:01:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdziłem , niestety ale nie działa, po przekroczeniu danej wielkości nie zostaje utworzony nowy plik:-(((((
Kod $plik = 'dane_03-07-2008.txt';
if(filesize($plik) >= 1048576) { //tworzenie nowego pliku } else { //aktualizacja aktualnego pliku (pominięta część kodu) $fp = fopen($plik, "a"); @flock($fp, 2); @fwrite($fp, $dane1. ' || '. $dane2.' || '. $dane3. ' || ' . "\n"); @flock($fp, 3); @fclose($fp); } Ten post edytował shreker 3.07.2008, 16:59:51 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
;-) Oczywiście że tak. próbowałem tam wstawić kod tworzący nowy plik, ale chyba coś pokręciłem, albo coś robię źle. Proszę o pomoc jak mam to zrobić. Zresztą gdybym wiedział jak to samemu zrobić to bym nie pisał. Jeśli ktoś ma pomysł to proszę o pomoc.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Pokaż więc jak to robisz, a nie oczekuj gotowca. Wtedy wspólnie dojdziemy do działającego rozwiązania.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam coś takiego:
Kod $plik = 'dane_03-07-2008.txt'; if(filesize($plik) >= 1048576) { $fpn = fopen($plik.date("Y.m.d") "a"); @flock($fpn, 2); @fwrite($fpn, $dane1. ' || '. $dane2.' || '. $dane3. ' || ' . "\n"); @flock($fpn, 3); @fclose($fpn); } else { //aktualizacja aktualnego pliku (pominięta część kodu) $fp = fopen($plik, "a"); @flock($fp, 2); @fwrite($fp, $dane1. ' || '. $dane2.' || '. $dane3. ' || ' . "\n"); @flock($fp, 3); @fclose($fp); } Na pewno coś robię źle, tylko nie mam pojęcia jak z tym poradzić, w php dopiero raczkuję. Ten post edytował shreker 3.07.2008, 19:11:28 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Poza tym przy formie date("Y.m.d") to nazwa pliku bedzie zawierala wiecej niz 1 kropke a tak byc nie moze. Dorzuc po tym if file_exists().
-------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat Na pewno coś robię źle, tylko nie mam pojęcia jak z tym poradzić, w php dopiero raczkuję - pierwsza rada: nie używaj znaków @ przed funkcjami i sprawdź, czy skonfigurowałeś serwer tak, aby wyświetlał wszystkie błędy i warningi (jak serwer nie wyświetla błędów, to nigdy się nie dowiesz, co jest źle).Rada druga: Cytat Po date("Y.m.d") nie masz przecinka - ściągnij sobie jakiś edytor do PHP (jest tego mnogo) ze sprawdzaniem i podpowiadaniem składni. Musisz sam dbać o poprawną składnię kodu, bo przecież z każdym zgubionym przecinkiem nie będziesz latał na forum?Rada trzecia: Nie twórz pliku przez funkcję fopen, bo nie na wszystkich serwerach to zadziała (zwłaszcza na darmowych tworzenie plików "w locie" bywa mocno ograniczone). Sugeruję touch. Rada czwarta: Sprawdzaj, czy plik ma odpowiedni chmod (czy jest edytowalny), czy da się go otworzyć etc. P.S > używaj odpowiedniego bbcode (PHP) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:45 |