Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis do txt z podziałem na linie
Forum PHP.pl > Forum > PHP
Lombi
Witam,

Nie posiadam dużej wiedzy o php, a wrecz jestem początkującym dlatego wybaczcie jeśli jest to głupie pytanie.
A mianowicie zapisuje plik z formularza do txt i cala treść zapisana jest w jednej linijce.
Ponieważ jest tego dużo trodno jest póżniej coś znależć. Czy istnieje możliwość aby wymusić zapis w taki sposób by np. co 100 znaków zapis przenosił się do nowej linijki?
Nie wiem czy potem nie będzie problemów z odczytaniem tego DLATEGO pytam ludzi mających o tym pojęcie.
I jeszcze jedno pytanie.
Dlaczego jeśli zapisze duża liczbe znaków do txt a potem chce to zmienić przy pomocy edytora WYSIWYG to mimo iz w nim skasuje wyrazy one i tak są po zapisie?

Prosze o POMOC!!!
krzyszbi
witam
co do newej lini po określonej ilości znaków to masz
http://pl2.php.net/manual/pl/function.wordwrap.php
Cytat
Nie wiem czy potem nie będzie problemów z odczytaniem tego DLATEGO pytam ludzi mających o tym pojęcie.

a i owszem mogą być problemy np.
  1. <?php
  2.  
  3. $tresc = file("dane.txt");
  4.  $i = 0;
  5. foreach ($tresc as $dane)
  6. {
  7. echo $dane.'<br />;
  8. }
  9.  
  10. ?>

taki kodzik wyświetlo 1 linię w jednej lini na ekranie a jeżeli ty wordwrapem linie "polamiesz" to i tak zostaną wyświetlone
a co do edytorów WYSWIG to ci nie odpowiem bo sam nie wiem
Lombi
Słuchaj Krzyszbi tylko czy wordarp() dzial w czasie zapisu do pliku? Nie zajmujmy sie tym jak to bedzie wyświetlane jedyne co chce to po 100 znakach zmusic do zapisu w kolejnej linijce w pliku test.txt

Mój plik wygląda następująco:

<?php
$dane = $_POST["dane"];
$file = "test.txt";
$wp = fopen($file, "r+");
$dane = stripslashes($dane);
fwrite($wp, $dane);
fclose($wp);
?>

Jak go zmienić aby uzyskać porzadany efekt?
krzyszbi
wordwr zadziala w tym miejscy co go zapiszesz/zdeklarujesz
  1. <?php
  2. $dane = $_POST["dane"];
  3. $file = "test.txt";
  4. $wp = fopen($file, "r+");
  5. $dane = stripslashes(wordwrap($dane, 100, "\n"););
  6. fwrite($wp, $dane);
  7. fclose($wp);
  8. ?>

i po problemie
Lombi
Niestety u mnie to nie dziala ;(
Najpierw pokazuje bląd że jest o jeden średnik za dużo, jeśli go usune a raczej powinien tam być to zapisuje taj jak wcześniej w jednej lini!

Nic trudno bede kombinował.
DZIEKI ZA POMOC exclamation.gif!
nospor
1)a czy ten tekst co wrzucasz z formularza zawiera spacje? jesli nie, to wordwrap go nie zlamie, jesli nie okreslisz ostatniego argumentu. W tym kodzie go nie ma, więc go nie lamie
2) druga przyczyna nie lamania, moze byc taka, ze zamiast \n daj \r\n

  1. <?php
  2. $dane = 'asdasdascvsdasdasdasdasdasdasdasdasdasd';
  3. $file = "test.txt";
  4. $wp = fopen($file, "r+");
  5. $dane = stripslashes(wordwrap($dane, 5, "\n",1));
  6. echo $dane;
  7. fwrite($wp, $dane);
  8. fclose($wp);?>
Lombi
Nospor twoja podpowiedz była bardzo trafna exclamation.gif! Wystarczyło dodanie \r przed \n.
Wielkie dzieki za pomoc exclamation.gif!
Pozdrawiam
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.