Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z funkcją htmlspecialchars()
AboutMe
post 20.09.2009, 14:46:53
Post #1





Grupa: Zarejestrowani
Postów: 261
Pomógł: 0
Dołączył: 24.02.2008

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


Problem jest następujący. Filtruję dane z bazy mysql przy pomocy htmlspecialchars, jednak po zamianie znaku \n na <br>, oczywiście działa nie tak jak powinien- jest odstęp + znak <br>
  1. $content2 = htmlspecialchars($content1");
  2. echo implode('<br>', explode("\n", $sContent2 ), );


Ten post edytował AboutMe 20.09.2009, 14:47:51
Go to the top of the page
+Quote Post
marcio
post 20.09.2009, 15:04:36
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Wiec dodaj trim()/ltrim() i tyle


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
AboutMe
post 20.09.2009, 15:23:37
Post #3





Grupa: Zarejestrowani
Postów: 261
Pomógł: 0
Dołączył: 24.02.2008

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


Nie o to mi chodzi.
Pobierając dane z bazy najpierw zastępuje znaki typu >,< po to aby kod nie ładował się do ciała dokumentu tylko wyświetlał się w przeglądarce, a następnie wyświetlam treść zastępując znak \n używając <br>, po to aby tekst nie wyświetlał się w 1 linii. Tyle że dodatkowo wyświetlają się <br>:

Cytat
<br />
<br />
<br />
<br />
<br />

vsdvwwervr <br />
agregrzfevr <br />
regareg5 <br />
<br />
<br />
Go to the top of the page
+Quote Post
Void
post 20.09.2009, 15:40:57
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


To nie zamieniaj znaków \n na <br> tylko użyj funkcji nl2br



Ten post edytował Void 20.09.2009, 15:42:25
Go to the top of the page
+Quote Post
bełdzio
post 20.09.2009, 18:08:38
Post #5





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


problem zapewne wynika z tego, że entery w bazie zapisane masz w konwencji Windowsa tzn \r\n i w chwili kiedy pozbywasz się \n zostaje \r, który powoduje odstęp smile.gif


--------------------
Go to the top of the page
+Quote Post
AboutMe
post 21.09.2009, 12:35:07
Post #6





Grupa: Zarejestrowani
Postów: 261
Pomógł: 0
Dołączył: 24.02.2008

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


No niestety efekt jest taki sam.

Faktycznie mam znak powrotu karetki w tabeli. I co na to poradzić?

Ten post edytował AboutMe 21.09.2009, 12:35:29
Go to the top of the page
+Quote Post
bełdzio
post 21.09.2009, 14:22:07
Post #7





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


użyj nl2br właśnie w tym celu powstała ta funkcja smile.gif


--------------------
Go to the top of the page
+Quote Post
fander
post 21.09.2009, 14:36:09
Post #8





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

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


napisz tak
  1. echo implode('<br>',explode("\n",htmlspecialchars(trim(strip_tags($to_z_bazy)))));
Go to the top of the page
+Quote Post
AboutMe
post 11.10.2009, 13:01:40
Post #9





Grupa: Zarejestrowani
Postów: 261
Pomógł: 0
Dołączył: 24.02.2008

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


Dzięki za pomoc.


------------------------------
Ludzie kochani, mam jeszcze 1 problem, mam w bazie tekst od razu przekonwertowany na utf8, no i htmlspecialchars zamienia mi &, przez co nie mogę np. wyświetlić znaku é
Czy istnie je może odmiana htmlspecialchars która zamienia tylko te znaki: <>?

Ten post edytował AboutMe 11.10.2009, 13:03:31
Go to the top of the page
+Quote Post
Dumdas
post 11.10.2009, 13:05:55
Post #10





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


napisz własną funkcję, lub użyj mojej:
  1. function specialchars($s) {
  2. $s = str_replace('<', '&lt', $s);
  3. $s = str_replace('>', '&gt', $s);
  4. }
winksmiley.jpg
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: 16.06.2025 - 21:30