Strona 1 z 1

php - znaki specjalne

: 15 lipca 2008, 01:53
autor: problem_o_0
Witam,
Stworzylem forumlarz z ktorego dane zapisywane sa w bazie danych (mysql). Jest jakas standardowa funkcja w php, ktora po odczytaniu danych z bazy danych (dane tekstow) w miejscu gdzie byl uzyty ENTER wstawi
tak zeby tekst wyswietlal sie w nowej lnii?
Czy sam musze napisac taka funkcje. A moze taka konwersje trzeba dokonac przed zapisaniem do bazy danych?

: 15 lipca 2008, 07:17
autor: ruun

: 15 lipca 2008, 19:06
autor: problem_o_0
Dzieki, wlasnie o to mi chodzilo.

Uzylem tez funkcji htmlspecialchars(), jeszcze moze ktos wie jaka funkcje zastosowac zeby na stronie wyswietlaly sie wszystkie spacje, a nie tylko jedna.

: 15 lipca 2008, 19:47
autor: ruun
Może tak:

Kod: Zaznacz cały

$tekst = str_replace(" ", "", $tekst);
pewnie jest jakieś lepsze rozwiązanie, słabo znam php :-)

: 16 lipca 2008, 01:06
autor: problem_o_0
Wielkie dzieki.
Tez slabo znam ten jezyk, wlasciwie to widze go pierwszy raz na oczy ;) I np nie wiem dlaczego to dziala

Kod: Zaznacz cały

nl2br(str_replace(" ", "", $wiersz[2]));
a to juz nie

Kod: Zaznacz cały

str_replace(" ", "", nl2b($wiersz[2]));
Ale mniejsza z tym, wazne ze w ogole dziala :]

: 16 lipca 2008, 08:59
autor: ruun
W drugim przypadku masz literówkę, nl2br ;-)

: 16 lipca 2008, 17:34
autor: problem_o_0
Literowka wziela sie stad ze pisalem to na poscie a nie uzywalem magicznych klawiszy CTRL+C, CTRL+V, w skrypcie dobrze pisalem ale i tak nie dziala. Ale tak jak pisalem wczesniej, dobrze ze druga wersja dziala ;)

: 17 lipca 2008, 15:39
autor: Itadakimasu
problem_o_0 pisze:Wielkie dzieki.
Tez slabo znam ten jezyk, wlasciwie to widze go pierwszy raz na oczy ]nl2br(str_replace(" ", "", $wiersz[2]));[/code]
a to juz nie

Kod: Zaznacz cały

str_replace(" ", "", nl2b($wiersz[2]));
Ale mniejsza z tym, wazne ze w ogole dziala :]
Czemu nie dziala?
Przykladowo masz:

Kod: Zaznacz cały

$wiersz[2] = "raz dwa trzy\n";
A wiec:

Kod: Zaznacz cały

nl2br($wiersz[2]) zwroci "raz dwa trzy 
"
Jak potraktujesz to tym str_replace to bedziesz mial:

Kod: Zaznacz cały

"razdwatrzy
"
Stad jest to bledne jak sadze.
Pozdro.

: 18 lipca 2008, 13:44
autor: problem_o_0
Jest jeszcze jeden problem.

Kod: Zaznacz cały

nl2br(str_replace(" ", "", $wiersz[2]));
To dziala lepiej niz ta druga wersja (w tamtej nie przechodzi do nowej lini) ale ta wersja nie zawija wierszy.
Mam taki kod w tabeli

Kod: Zaznacz cały

echo '[i]', nl2br(str_replace(" ", "", $wiersz[2])), '[/i]';
i tekst wychodzi poza tabele, zrezygnowalem z tych spacji i zostawilem tylko:

Kod: Zaznacz cały

echo '[i]', nl2br($wiersz[2]), '[/i]';

: 19 lipca 2008, 09:37
autor: Itadakimasu
problem_o_0 pisze:Jest jeszcze jeden problem.

Kod: Zaznacz cały

nl2br(str_replace(" ", "", $wiersz[2]))]
To dziala lepiej niz ta druga wersja (w tamtej nie przechodzi do nowej lini) ale ta wersja nie zawija wierszy.
[/quote]
Nie przechodzi poniewasz masz  w znaczniku html'a.

[quote="problem_o_0"]
Mam taki kod w tabeli
[code]echo '[i]', nl2br(str_replace(" ", "", $wiersz[2])), '[/i]']
i tekst wychodzi poza tabele, zrezygnowalem z tych spacji i zostawilem tylko:
[code]echo '[i]', nl2br($wiersz[2]), '[/i]';
to inaczej non-breaking space, nie lamliwa i niepodatna na word-wrap. To oczywiste ze, jesli bedziesz ich uzywal i mial text dluzszy niz komorka w tabeli to ci wyjdzie poza nia. Przy normalnych spacjach ci zawinie.