![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Hej
Z tego co wiem tryb +r powinnien Otwiera plik do odczytu i zapisu z czego zapis mialby nastepowac na gorze pliku. Moj skrypt wyglada tak: $file=fopen("news.txt", "r+"); fputs($file, "$trescn"); Kod $file=fopen("news.txt", "r+");
fputs($file, "$trescn"); Faktycznie zostaje otwarty plik i tresc zostaje dopisana za pierwszym razem Ale gdybym chial dodac newsa 2 raz to stara tresc zostaje zastapiona nowa... Niewiem dlacego tak sie dzieje... Bardzo prosze o pomoc. Wczesniej rozmawialem z pewna osoba to powiedziala mi ze php ma problemy z dopisywaniem na poczatku. Z gory dziekuje |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Cytat Fopen
tryb może być dowolny z poniższych: 'r' - Otwórz tylko do odczytu; ustawia wskaźnik pliku na początku pliku. 'r+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku. 'w' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć. 'w+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć. 'a' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć. 'a+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć. Notatka: Parametr tryb może zawierać literę 'b'. To jest użyteczne tylko na systemach, które rozróżniają pliki pomiędzy binarne i tekstowe (np. Windows. To jest bezużyteczne na Unixach) Jeśli nie potrzebne zostanie zignorowane. polecam akapit a+ -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
ehh
![]() a+ ustawia wskaznik na koncu pliku... A ja musze miec na poczatku... Widzial ktos newsy zaczynajac od dolu w gore czytac ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
A czy pliki są z gumy, ze sie będą w każdą stroną rozciągać?
Jak chcesz by kolejny news nadpisał się na poprzedni to wszystko ok, ale jeśli chcesz mieć wszystkie ... to polecam array_reverse() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 27.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Niewiem czy sa z gumy...
Ale pacz: Cytat 'r+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku.
Czyli powinno na pocatku dopisywac... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
niewątpliwie, ale jak być przeczytał do końca mojego posta, to wiedziałbyś, czym to się skończy. Dane zostaną NADPISANE, jasne?
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli powinno na pocatku dopisywac...
No i dopisuje się na początku, ale nie przesuwa istniejącej już zawartości... To w twoim interesie jest to tak zorganizować, żeby Ci pasowało... Zawsze możesz pobrać istniejące newsy do zmiennej dopisać na początku to co chcesz i nadpisać całą zawartość pliku... Osobiście stosowałbym metodę podaną przez DeyV, czyli dopisywanie na końcu, a potem odwrócenie przez funkcję array_reverse()... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 4 Dołączył: 12.03.2003 Skąd: Suwałki Ostrzeżenie: (0%) ![]() ![]() |
miły Kolego
![]() ps. po co tyle zamieszania ![]() |
|
|
![]()
Post
#9
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
Jednym z prostszych sposobów jest stworzenie pliku temp.dat do którego najpierw skopiujemy aktualne newsy. Potwem czyścimy główn plik (newsy.dat), wklejamy nowego newsa. Doklejamy poprzednie newsy z pliku temp.dat za pomocą a. Proste prawda ? Kod dla przykładu:<P>
[php:1:db390383b8] <?php copy("newsy.dat", "temp.dat"); file=fopen("newsy.dat", "w"); fwrite=($file, $tresc_newsa); fclose($file); file=fopen("temp.dat", "r"); $newsy_stare=fred($file, $tresc_newsa); fclose($file); file=fopen("newsy.dat", "a"); fwrite=($file, $newsy_stare); fclose($file); ?>[/php:1:db390383b8] -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jednym z prostszych sposobów jest stworzenie pliku temp.dat do którego najpierw skopiujemy aktualne newsy.
Po co, skoro operacje w pamięci są szybsze... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#11
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
Cytat Po co, skoro operacje w pamięci są szybsze...
Ja nie napisałem że jest to najszybszy sposób, napisałem tylko że najprostszy -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:06 |