Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis danych do pliku .TXT na początku
Forum PHP.pl > Forum > PHP
moto0095
Dzień dobry. Przeszukałem google i nie mogę nic znaleźć.
Mam oto taki skrypt php:

plik: news_edit.php
  1. <?php
  2. /*********************************************
  3.   * formularz
  4.   *********************************************/
  5.  
  6. $pole1 = trim($_POST['pole1']);
  7. $pole2 = trim($_POST['pole2']);
  8. $pole3 = trim($_POST['pole3']);
  9. $pole4 = trim($_POST['pole4']);
  10. $pole5 = trim($_POST['pole5']);
  11.  
  12. if(empty($pole1) and empty($pole2) and empty($pole3) and empty($pole4) and empty($pole5)) {
  13.  
  14. // formularz
  15. echo '<form action="" method="post">
  16. tytuł: <input type="text" name="pole2" value="http://" style="width: 200px;" /><br />
  17. nr: <input type="text" name="pole1" style="width: 183px;" /><br />
  18. autor: <input type="text" name="pole3" style="width: 183px;" /><br />
  19. data: <input type="text" name="pole4" style="width: 183px;" /><br />
  20. text: <input type="text" name="pole5" style="width: 183px;" /><br />
  21. <input type="submit" value="Zapisz" /> <input type="reset" value="Reset" />
  22. </form>';
  23.  
  24. }
  25.  
  26. if ($pole1 != "") {
  27. // dane pochodzace z formularza
  28. $dane = $pole1."|".$pole2."|".$pole3."|".$pole4."|".$pole5."\n";
  29. // przypisanie zmniennej $file nazwy pliku
  30. $file = "data.txt";
  31. // uchwyt pliku, otwarcie do dopisania
  32. $fp = fopen($file, "a");
  33. // blokada pliku do zapisu
  34. flock($fp, 2);
  35. // zapisanie danych do pliku
  36. fwrite($fp, $dane);
  37. // odblokowanie pliku
  38. flock($fp, 3);
  39. // zamkniecie pliku
  40. fclose($fp);
  41.  
  42. echo "Dane zostaly zapisane!<br />";
  43. echo "<a href=news_edit.php>Zobacz wpisane dane</a>";
  44.  
  45. }
  46.  
  47.  
  48. ?> <br><br><br>
  49. <script language='JavaScript' type='text/javascript'>
  50. if (document.getElementById('pole1'))
  51. {
  52. document.write("");
  53. }
  54. else
  55. {
  56. if (document.body.innerText.indexOf("Dane zostaly zapisane!")>=0)
  57. {
  58. ///
  59. }
  60. else
  61. {
  62. document.write("Karta jest pusta");
  63. document.write('<a href="index.php">wróc</a>');
  64. }
  65.  
  66. }
  67. </script>
  68. <?php
  69. /*********************************************
  70.   * baza
  71.   *********************************************/
  72.  
  73. echo "<table border=1 cellspacing=0 cellpadding=0 width=98%>";
  74.  
  75. // wczytanie zawartosci pliku do tablicy
  76. $file = file("data.txt");
  77. // przechodzimy przez tablice za pomoca petli foreach
  78. foreach($file as $value) {
  79. // rozbijamy poszczególne linie na czesci
  80. $exp = explode("|",$value);
  81. // wyswietlamy rozbity tekst
  82. echo "<tr><td>" .$exp[0]. "</td><td>" .$exp[1]. "</td><td>" .$exp[2]. "</td><td>" .$exp[3]. "</td><td>" .$exp[4]. "</td></tr>";
  83. }
  84.  
  85. echo "</table>";
  86. ?>

Zapisuje on najpierw informacje z pul do pliku dane.txt a następnie je wyświetla.
I mam takie pytanie: Jak zrobić aby dane zapisywały się na samej górze a nie na samym dole pliku dane.txt questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
DiH
Przykład z manuala, trochę przerobiony:
  1. $nowe_dane = "Nowa linijka \r\n";
  2. // Do $tresc ładujesz zawartość pliku plik.txt
  3. $tresc = file_get_contents('plik.txt');
  4. // Do nowych danych dołączasz wcześniejszą zawartość pliku
  5. $nowe = $nowe_dane.$tresc;
  6. // Zapisz treść spowrotem do pliku
  7. file_put_contents('plik.txt', $nowe);

Pozdrawiam
MateuszS
Może tak

  1. <?
  2.  
  3. $fp = fopen($file, "a");
  4. // blokada pliku do zapisu
  5. $tekst = fread($fp, filesize("data.txt"));
  6. $dane = $tekst . "oddzielnik" . $dane; //nie wiem czym oddzielasz te newsy, zedytuj sobie
  7. // zapisanie danych do pliku
  8. fwrite($fp, $dane);
  9.  
  10.  
  11. ?>


Musisz posprawdzać. Chodzi o to że pobierasz dane z pliku, doczepiasz na początek nowy news i stare dane za nim i z powrotem zapisujesz do pliku.

edit//
drugi :]
moto0095
Zadam może głupie pytanie ale w jakim miejscu doczepić te skrypty questionmark.gifquestionmark.gif
MateuszS
Wystarczy że doczepisz jeden. pomiędzy flockami (wywal je najlepiej) i wywal fwrite i tam wklej kod.
DiH
Usuwasz ten blok:
  1. / przypisanie zmniennej $file nazwy pliku
  2. $file = "data.txt";
  3. // uchwyt pliku, otwarcie do dopisania
  4. $fp = fopen($file, "a");
  5. // blokada pliku do zapisu
  6. flock($fp, 2);
  7. // zapisanie danych do pliku
  8. fwrite($fp, $dane);
  9. // odblokowanie pliku
  10. flock($fp, 3);
  11. // zamkniecie pliku
  12. fclose($fp);

I podmieniasz go na kod mój, lub kolegi.
moto0095
DZIĘKUJĘ WAM PANOWIE BARDZO MI POMOGLIŚCIE smile.gif smile.gif smile.gif exclamation.gif!!!!
Temat do zamknięcia exclamation.gif
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.