php - znaki specjalne

Potrzebujesz pomocy z C, C++, perl, python, itp.
problem_o_0
Posty: 53
Rejestracja: 20 czerwca 2008, 17:50

php - znaki specjalne

Post 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?
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

problem_o_0
Posty: 53
Rejestracja: 20 czerwca 2008, 17:50

Post 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.
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

Może tak:

Kod: Zaznacz cały

$tekst = str_replace(" ", "", $tekst);
pewnie jest jakieś lepsze rozwiązanie, słabo znam php :-)
problem_o_0
Posty: 53
Rejestracja: 20 czerwca 2008, 17:50

Post 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 :]
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

W drugim przypadku masz literówkę, nl2br ;-)
problem_o_0
Posty: 53
Rejestracja: 20 czerwca 2008, 17:50

Post 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 ;)
Itadakimasu
Posty: 12
Rejestracja: 16 lipca 2008, 19:08

Post 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.
problem_o_0
Posty: 53
Rejestracja: 20 czerwca 2008, 17:50

Post 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]';
Itadakimasu
Posty: 12
Rejestracja: 16 lipca 2008, 19:08

Post 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.
ODPOWIEDZ