Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] przenoszenie do następnej linii w pliku .txt
Forum PHP.pl > Forum > Przedszkole
Chemiq
podejrzewam że rozwiązanie może być wręcz banalne ale meczę się z tym już kilka godzin i nie wiem jak to rozwiązać. otóż mam taką funkcję:
  1. <?php
  2. function edytuj_slowo() {
  3. global $folder_baz;
  4. $plik = file($folder_baz.$_POST['baza']);
  5. if (file_exists($folder_baz.$_POST['baza'])) {
  6. $slowa = array($_POST['slowo1'], $_POST['slowo2']);
  7. $linia_do_zapisu = implode('=', $slowa);
  8. for ($j=0; $j<count($plik); $j++) {
  9. list($slowo1[$j], $slowo2[$j]) = explode("=", $plik[$j]);
  10. if ($slowo1[$j]==$_POST['slowo1_o'] && (int)$slowo2[$j]==(int)$_POST['slowo2_o']) {
  11. $plik[$j] = $linia_do_zapisu;
  12. if (file_put_contents($folder_baz.$_POST['baza'], implode('', $plik))) {
  13. $edytuj_slowo = 'Plik został poprownie zaktualizowany';
  14. }
  15. }
  16. }
  17. }
  18. return $edytuj_slowo;
  19. }
  20. ?>

wszystkie zmienne są przekazywane prawidłowo z formularzy. problem polega jedynie na tym że wczytując w formularzu plik tekstowy o tej treści:
jeden=1(jeden)
dwa=2(dwa)
trzy=3(trzy)
cztery=4(cztery)
pięć=5(pięć)
sześć=6(sześć)
siedem=7(siedem)
osiem=8(osiem)
dziewięć=9(dziewięć)
dziesięć=10(dziesięć)

i zmieniając np. linię "sześć=6(sześć)" na jakąkolwiek inną np. "sześć=6(sześć)6666666" (nieistotne na co zmienię) to treść zapisanego pliku będzie wyglądać tak:
jeden=1(jeden)
dwa=2(dwa)
trzy=3(trzy)
cztery=4(cztery)
pięć=5(pięć)
sześć=6(sześć)6666666siedem=7(siedem)
osiem=8(osiem)
dziewięć=9(dziewięć)
dziesięć=10(dziesięć)

czyli problem tkwi w tym, że przy zapisywaniu nie jest wstawiany znak przerzucania do następnej linii. próbowałem już wstawiać \n, \r, \r\n, nawet <br> i nic nie dało rezultatu. szukałem na forum i na google i jedyne co znalazłem to wstawienie właśnie \n lub \r\n, które dopisywane są po prostu jako zwykły tekst do pliku a nie jako znak nowej linii.

serwer stoi na Windowsie na Apache 2.2.4, PHP 5.2.0

-- EDIT by JaRoPHP
Proszę o przestrzeganie Zasad forum Przedszkole (znacznik w tytule). Tym razem poprawiam.
phpion
Na Windowsie powinno działać \r\n. Kwestia tylko jak to wstawiasz czy w apostrofach ('\r\n') czy w cudzysłowiu ("\r\n"). Jeśli w 1 sposób to w pliku zobaczysz po prostu \r\n, natomiast drugi sposób zinterpretuje \r\n jako znak końca linii i wstawi w to miejsce [ENTER].
Chemiq
święta racja. że też nie zwróciłem na to uwagi. wstawiałem z przyzwyczajenia w apostrofach i dlatego nie było tak jak chciałem. teraz już będę o tym pamiętał. dzięki wielkie za pomoc biggrin.gif

temat uważam za zamknięty tongue.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.