Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] przenoszenie do następnej linii w pliku .txt
Chemiq
post 29.12.2007, 20:01:07
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post 29.12.2007, 20:10:36
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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].
Go to the top of the page
+Quote Post
Chemiq
post 29.12.2007, 20:21:56
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

Ostrzeżenie: (0%)
-----


ś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

Ten post edytował Chemiq 29.12.2007, 20:24:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:38