Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [flash][php] zapis do pliku na początku
Forum PHP.pl > Forum > Przedszkole
BoomerINK
mam pewien problem. piszę bardzo prosty system zarządzania treścią dla stron we flashu korzystających z zewnętrznych plików tekstowych. każdy z tych plików tekstowych musi na początku zawierać wyrażenie "info=" żeby flash mógł rozpoznać tekst do wczytania. Napisałem taki oto skrypt który pozwala mi na dodawanie na początku pliku txt nowego tekstu (np. newsa):

  1. <?php
  2. $temat = $HTTP_POST_VARS['temat'];
  3. $tresc = $HTTP_POST_VARS['tresc'];
  4. $data = date('d/m/Y H:i');
  5. $plik = "txt/plik.txt";
  6.  
  7. @ $wp = fopen ("$plik", 'r');
  8. $stareDane = fread($wp, filesize("$plik"));
  9. fseek($stareDane, 5);
  10.  
  11. $noweDane = "data: ".$data."<br><b>".$temat.'</b><br><br>'.$tresc.'<br><br>';
  12. $noweDane .= $stareDane;
  13.  
  14. $wp = fopen("$plik", "w");
  15.  
  16. fputs ($wp, $noweDane);
  17. if(!$wp) {
  18. echo '<p><strong>Wystąpiły błędy w czasie odczytu pliku. Proszę spróbować później i zgłosić bł
    ąd na adres boomer@inkorporacja.com</strong></p></body></html>'
    ;
  19. }
  20. echo '<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><head><title>Dodano news</title></head><body>';
  21. echo '<h1>Dodano news:</h1>';
  22. echo '<p>dodano: '.$data.'</p>'; 
  23. echo '<p><strong>temat: '.$temat.'</strong></p>';
  24. echo 'tresc:<br>'.$tresc;
  25. echo '</body></html>';
  26. fclose($wp);
  27. ?>



ale chodzi o to że nie ma on się zapisywać na samym poczatku lecz dopiero po zwrocie "info=" czyli przesunięty o pięć znaków. próbowałem dodać tam funkcję fseek() jednak nic to nie pomogło.

Proszę o pomoc. Z góry dziękuję za odpowiedzi.
devnul
a nie łatwiej jest zapisać cały plik razem z początkowym ciągiem info= ?
BoomerINK
ale ten skrypt ma dodawać kolejne newsy do strony winksmiley.jpg i chcę żeby najnowszy news był na początku i przesuwał pozostałe w dół
devnul
no to kombinujesz jak kń pod góre
  1. <?php
  2. $newsy=substr(file_get_contents('newsy.txt'),5);
  3. file_put_contents('newsy.txt',.'info='.$nowe.$newsy);
  4. ?>
BoomerINK
fatal error: Call to undefined function: file_put_contents() in /home/enterink/ftp/inkorporacja/php/proby/admin/dodaj.php on line 9


niestety to nie działa

zmieniłem ta funkcję na fputs, potem na fwrite i przy żadnej z opcji nie działa

dopiero po zmianie Twojego kodu na taką postać
  1. <?php
  2. $newsy=substr(file_get_contents("$plik"),5);
  3. fputs($wp,.'info='.$nowe.$newsy);
  4. ?>


zaczęło mi zapisywać do pliku ale teraz z kolei przed każdym newsem zostawia mi "info=" a zdecydowanie nie o to mi chodziło
devnul
kożystasz pewnie z php4 to pierwszy błąd a drugi to nie wstaiwaj nigdzier tego swojeo fseek to bedzie dzialalo jak trzeba poniże przerobiony na twoje potrzeby kod całości
  1. <?php
  2. $newsy=@substr(@join('n',@file('newsy.txt')),5);
  3. fwrite(fopen('newsy.txt','w+'),'info='.$nowe.$newsy);
  4. ?>

to jest cały kod - nie wplatuj tego w ten swój poprzedni - nie ma takiej potrzeby
BoomerINK
wielkie dzieki teraz wszystko działa tak jak powinno
devnul
a prosze i Wesołych Świąt smile.gif Mokrego jajka i smacznego dyngusa :]
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.