Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [enter]/<br>
Forum PHP.pl > Forum > PHP
invx
Zapisuje dane z pola textarea do pliku. i pojawia sie problem przy enterach. zby mi nie rbilu syfu w pliku daje cos takiego:

[php:1:dd9b9757f6]<?php
$p2= str_replace("rn", " ", $_POST['p2']);
$p2= str_replace("n", " ", $_POST['p2']);
#zamienia entery na spacje
?>[/php:1:dd9b9757f6]

i wszystko dobrze tylko jak potem chce wyswietlic te dane i zeby mialy [entery] tak jak przy wpisywaniu w polu to nie wiem jak to zrobic?
a tak na marginesie to jak wprowadzic ten caly bbcode do pola text area smile.gif
id4
Witam

Użyj [manual:22e841aa96]nl2br[/manual:22e841aa96].
[php:1:22e841aa96]<?php
$string=nl2br($string);
?>[/php:1:22e841aa96]

Nie będziesz miał żadnych problemów z edycją. Ale pamiętaj - zapisuj do bazy dokładnie to, co wychodzi z formularza. Przekształcaj to funkcją nl2br dopiero przy wyświetlaniu.
invx
tylko ze ja mam na txt nie na bazie smile.gif
marian8
nl2br zostawia "enter" a dodaje tylko "<br />"
Proponuje od razu do pliku zapisywac tekst z BRami[php:1:e3df1f24dc]<?php
$p2= str_replace("rn", "<br />", $_POST['p2']);
$p2= str_replace("n", "<br />", $_POST['p2']);
#zamienia entery na spacje
?>[/php:1:e3df1f24dc]
invx
hmm... a jak by wygladalo wprowadzenie bbcode do tego zeby taki lady edytorek byl jak np. na tym forum jest

P.S.
szykalem na google o bbcode i mi wyszlo na to ze bbcode dla phpbb zostal stworzony?
id4
Cytat
nl2br zostawia "enter" a dodaje tylko "<br />"
Proponuje od razu do pliku zapisywac tekst z BRami[php:1:2fb5d43456]<?php
$p2= str_replace("rn", "<br />", $_POST['p2']);
$p2= str_replace("n", "<br />", $_POST['p2']);
#zamienia entery na spacje
?>[/php:1:2fb5d43456]


I bardzo dobrze, że tak robi. A zamana przed zapisaniem to ostatnia głupota, ponieważ przy edycji pliku przez formularz na www (np. cms) każdy następny enter zamienia na <br>, a w rezultacie powiela każdy <br> o kolejne!
Jeśli chcesz mieć możliwość edycji, to prosto z formularza zapisuj do pliku w takiej postaci jak podaje textarea, a przy odczytywaniu konwertuj to funkcją [manual:2fb5d43456]nl2br[/manual:2fb5d43456]. Dzięki temu nie zepsujesz formatowania tekstu jaki widzisz w textarea w stosunku do tego na stronie www! A to czy zapisujesz do pliku czy do bazy, to w tym wypadku nie ma najmniejszego znaczenia!
marian8
Jak mniemam w pliku jeden wiersz odpowiada jednemu rekordowi wiec zapis z nr odpada.

A jesli chodzi o pozniejsza edycje tekstu zapisanego z <br /> to mozna przeciez zrobic tak
[php:1:bb269f8e22]<?php
str_replace("<br />,"n",$txt);
?>[/php:1:bb269f8e22]
i $txt zaladowac do textarea,
wtedy zaden <br /> nie zostanie powtorzony!
id4
Cytat
Jak mniemam w pliku jeden wiersz odpowiada jednemu rekordowi wiec zapis z nr odpada.

A jesli chodzi o pozniejsza edycje tekstu zapisanego z <br /> to mozna przeciez zrobic tak
[php:1:69e9a04cb1]<?php
str_replace("<br />,"n",$txt);
?>[/php:1:69e9a04cb1]
i $txt zaladowac do textarea,
wtedy zaden <br /> nie zostanie powtorzony!


No więc zachodzi pytanie: Po co zamieniać z rn na <br> a później z <br> na rn, jak można to zrobić tylko 1 raz, podczas czytania? A co do zapisu, to podczas zapisu do pliku znaczniki rn są dodawane automatycznie, więc nie trzeba ich jakoś specjalnie zapisywać - one po prostu wychodzą z textarea i trafiają do pliku - żadna filozofia ... nawet, jak ich nie widać.
marian8
Jesli wiersze w pliku odpowiadaja rekordom zapisywanych jakichs danych to jesli zapiszesz cos co przechodzi do nowego wiersza to sie calosc posypie!!!

Przyklad
Kod
2004-02-12|Jakis tam tekst<br />cos tam

2004-02-13|Jeszcze inny rekord

a tu nowa linia w ktorej nie zamieniles nr na BR

2004-02-14|pozdrawiam wszystkich


Domysl sie id4 co sie stanie jak bedziesz chcial to odczytac!!!
id4
A dlaczego zakładasz, że w pliku będzie zapis rekordowy, jak np. newsy? Przecież nie było to napisane? A jeśli jest to posyłane z textarea, to raczej będzie to tekst, jak na przykład 20 zdań odpowiednio sformatowanych. Wtedy całą zawartość pliku przypisujesz do zmiennej i masz dokładnie to, co dostałbyś z bazy danych. I w dodatku edycja jest bardzo prosta. A wracając do newsów, to raczej nie edytuje się ich wszystkich w jednym polu textarea, ale odczytuje i edytuje pojedyncze rekordy - tak przynajmniej kiedyś robiłem.
marian8
Cytat
Zapisuje dane z pola textarea do pliku. i pojawia sie problem przy enterach. zby mi nie rbilu syfu w pliku daje cos takiego:

Autor jak widac usiluje sie pozbyc nr z pliku i dlatego podsunalem mysl aby zamienic nr na <br /> a przy edycji na odwrot. nie istotne czy to bedzie zapis rekordowy czy nie. Staram sie pomoc autorowi.

Jesli chodzi o newsy to ja wcale nie napisalem ze chcialbym je edytowac w calosci!
oto kod do mojego przykladu
[php:1:f8f0faa9d7]<?php
$plik = file("plik.txt");
echo '<table><tr><th>DATA</th><th>TRESC</th></tr>';
foreach($plik as $txt) {
$tab = explode('|',str_replace("<br />","n",$txt));
echo '<tr><td><input name="data" value="'.$tab[0].'" /></td><td><textarea name="tresc">'.$tab[1].'</textarea></td></tr>';
}
echo '</table>';
?>[/php:1:f8f0faa9d7]
a przy zapisie zamienialbym wszystkie n na <br /> i sprawa skonczona.
Nie chce mi sie juz dluzej tego ciagnac wiec jesli ktos uwaza ze moj pomysl jest glupi lub bezsensu to trudno...
Milej zabawy
id4
Jakby nie było, to mamy nadzieję (ja i marian8), że autorowi w jakiś sposób pomogliśmy smile.gif Pozdrawiam smile.gif
invx
zapis jest taki:
Kod
text//text//

text1//text1//

itd..

oki to rozumiem biggrin.gif tylko jak sie ma bbcode do tego questionmark.gif moze by bbcode zamiast tego wprowadzic??
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.