Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Enter na <br>
Forum PHP.pl > Forum > PHP
ano
Mam problem z jednym skryptem:
Użytkownik podaje jakiś wpis i ten wpis jest dodawany do pliku data.txt.
Drugi skrypt wyświetla po kolei linie z pliku data.txt. I mam tu jeden problem, jeżeli użytkownik pod czas podawanie nowego wpisu użyje entera (bo wpis pisze w textarea) to 2 skrypt się sypie.
Czy da się jakoś zamienić entery na <br> :?: :?: :?:
rzseattle
Kod
nl2br ( string )

Returns string with '<br />' inserted before all newlines.
DeyV
to nie stety nie wytsarczy, gdyż jak rzseattle zacytował, w przypadku użycia tej funckji br nie zastępuje znaku nowej lini, lecz jest inserted before all newlines
Należy skorzystać np. z
$text= str_replace("n", "<br>", $text);
QbAWoLNY
Cytat
to nie stety nie wytsarczy, gdyż jak rzseattle zacytował, w przypadku użycia tej funckji br nie zastępuje znaku nowej lini, lecz jest inserted before all newlines
Należy skorzystać np. z
$text= str_replace("n", "<br>", $text);
ja robie tak jak rzseattle i mi wszystko elegancko dziala biggrin.gif
KaMeLeOn
Cytat
to nie stety nie wytsarczy, gdyż jak rzseattle zacytował, w przypadku użycia tej funckji br nie zastępuje znaku nowej lini, lecz jest inserted before all newlines
Należy skorzystać np. z
$text= str_replace("n", "<br>", $text);

Zgadzam się z kolegą, ale należy jeszcze pamiętać, że w windowsowskich systemach ENTER to "rn"...
Więc:
[php:1:128005d6d7]<?php
$text= str_replace("rn", "<br>", $text);
$text= str_replace("n", "<br>", $text);
?>[/php:1:128005d6d7]
rzseattle
ja stosowac i to dzialac wiec po co komplikowac smile.gif

a tak powaznie to jakie sa symptomy niedoskonalosci nl2br?questionmark.gif
bo ja sie raczej nie spotkalem.
DeyV
Niedoskonałość to zadużo powiedziane. Chodzi o to, że po funckji nl2br nadal pozostają znaki nowej lini. W większości przypadków, np. przy wyświetlaniu, jest to nawet wskazane - otrzymujemy czytelniejsze źródło.
Jednak gdy chcemy deny tekst zapisać w pliku, przy założeniu, że każda nowa linia to nowy rekord, no to wtedy skrypt by się nam rozsypał. Powód? - za dużo nowych lini. Stąd w toicowym problemie konieczne było inne rozwiązanie
Seth
Mozna jeszcze tak tongue.gif :
[php:1:436a08b77c]$text = ereg_replace("(rn|n|r)", "<br />", $text);[/php:1:436a08b77c]

P.S. Czytajcie czasami komentarze pod opisami w manualu stamtad mozna wiele sie nauczyc.
GeoS
Czasem nawet wiecej niz z suchego opisu danej funkcji biggrin.gif
rzseattle
To juz wiem czemu jestem zadowolony z tej funkcji,
nie uzywam jej do niczego innego tylko do wyswietlania.

I znowu nasuwa mi sie lopatologiczne aczkolwiek logiczne (nawet nie czuje jak rymuje biggrin.gif ) pytanie. Mianowicie po co wpis do pliku czy do bazy traktowac funkcja nl2br skoro BRerki sluza praktycznie tylko do wyswietlania?questionmark.gif Czy nie powinismy uzywac tej funkcji tylko w przypadku echo i print?questionmark.gif

ps. sorki za dociekliwosc ale tak namieszliscie ze wycodzi na to zema uzyc ww funkcji na stringu ktory chce zapisac. A mi chodzilo o tym ze ma ja zastosowac na stringu wyciagnietym z pliku i w ten sposob go przygotowac do wyswietlenia. Wiec sie troche zamotalem.
rzseattle
Cytat
przy założeniu, że każda nowa linia to nowy rekord, no to wtedy skrypt by się nam rozsypał. Powód? - za dużo nowych lini.


Sorki za moja bezmyslnosc i nieuwazne czytanie postow (nie musicie odpowiadac namoj powyzszy post).
Poprostu zawsze stosuje sql zamiast *.txt i nie mialem styku z tego typu problemami.
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.