Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z trim()
VegetaSSJ
post 26.11.2006, 22:44:24
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 21.10.2006

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


Witam!
Jako że zapoczątkuje dopiero z php postanowiłem sobie napisać księgę gości, nie używałem jeszcze sqla więc wszystkie wpisy zaplanowałem że będą trzymane w jednym pliku na dysku. Napisałem sobie odpowiednią klasę i mam problem. Do wpisywania komentarzy użyłem pola textarea i wysyłania metodą post. Jako że przyjąłem że każdy komentarz będzie zajmował jedną linię w pliku problem się pojawia kiedy wpiszę w textarea jakiś tekst z użyciem enteru tzn kilka razy przejdę do nowej linii. Wtedy cały komentarz zapisuje w pliku w kilu liniach. Próbowałem przed zapisem potraktować string w którym mam surowy komentarz funkcją trim() która ponoć usuwa znaki załamania wiersza '\n' ale nie skutkuje. Próbowałem też str_replace('\n', ' ', $ciagwejsciowy) ale bez skutku. Pomoże ktoś ?
Go to the top of the page
+Quote Post
siemakuba
post 26.11.2006, 23:30:27
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Hmm, trim" title="Zobacz w manualu php" target="_manual usuwa białe znaki ale tylko z początku i końca całego stringu. Z pewnością nie usuwa znaków nowej linii.

Ta konstrukcja zadziała:
  1. <?php
  2. // nie tak
  3. str_replace('n', ' ', $ciagwejsciowy);
  4. //ale tak (cudzysłów!)
  5. str_replace("n", ' ', $ciagwejsciowy);
  6. ?>


Tyle, że skoro ktoś wklepał w polu textarea znak nowej linii, to pewnie miał ku temu powód. Więc czemu nie użyć nl2br" title="Zobacz w manualu php" target="_manual? Problem z nowymi liniami w pliku rozwiązany, formatowanie poprawne.

pozdr.
Go to the top of the page
+Quote Post
Sedziwoj
post 26.11.2006, 23:38:36
Post #3





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Lub też w jednej linijce:
  1. <?php
  2. str_replace(array("n","r"),'',$strings)
  3. ?>

tylko trzeba pamiętać, że nl2br() nie usuwa znaku nowej linii on jedynie dodaje <br> przed nią.

Co do znaku końca linii trzeba pamiętać, że Linux to tylko \n Windows to \r\n a mac \r...


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
siemakuba
post 26.11.2006, 23:46:14
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


@Sedziwoj, masz rację co do nl2br" title="Zobacz w manualu php" target="_manual.
Co do nowej linii, zamiast zastanawiania się, czy Win, czy Mac czy Unix, najlepiej chyba użyć stałej PHP_EOL ;)

pozdr.

Ten post edytował siemakuba 27.11.2006, 01:05:48
Go to the top of the page
+Quote Post
Sedziwoj
post 26.11.2006, 23:54:53
Post #5





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Fajna stała biggrin.gif można by było się spodziewać, że jest skoro jest nl2br(), więc kod by wyglądał:
  1. <?php
  2. $strings=str_replace(PHP_EOL ,'<br />',$strings);
  3. ?>


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
VegetaSSJ
post 27.11.2006, 00:49:08
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 21.10.2006

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


ok koledzy dzięki za podjęcie tematu. Zadziałało str_replace(array("\n","\r"), ' ', $string) . Ciekawi mnie jednak dlaczego nie działa funkcja trim() wszak pisze że wycina "\n" i "\r".
Go to the top of the page
+Quote Post
Sedziwoj
post 27.11.2006, 01:01:43
Post #7





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Działa tak jak pisze, wycina tylko że na końcu i na początku.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
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.06.2024 - 08:59