Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]highlight_string() nie działa z innymi funkcjami
Kloc
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Zbudowałem funkcję filtrującą i problem ma taki, że gdy dodam funkcję kolorującą składnię php- highlight_string() to reszta przestaje działać.

  1. function zamien($code){
  2. $code = htmlspecialchars($code);
  3. $code = nl2br($code);
  4. $code = highlight_string($code, true);
  5. return $code;
  6. }


Gdy przepuszczę poniższy kod przez tą funkcję to wywala mi jakieś bohomazy i dziwne znaki. Nie ma żadnych błędów.

Kod
'<?Php
phpinfo();
    echo "blabla";
?>

<ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>';


to mi wywala
Kod
&lt;?Php <br />
phpinfo(); <br />
    echo &quot;fgfgff&quot;; <br />
?&gt;<br />
<br />
&lt;ul id=&quot;ul&quot;&gt;<br />
    &lt;li&gt;1&lt;/li&gt;<br />
    &lt;li&gt;2&lt;/li&gt;<br />
    &lt;li&gt;3&lt;/li&gt;<br />
&lt;/ul&gt;


a jak zrobię z funkcją tak


  1. function zamien($code){
  2. $code = highlight_string($code, true);
  3. return $code;
  4. }


To wszystko działa prawidłowo, czyli tak jakby ona zastąpiła mi pozostałe. Czy to jest możliwe, bo ona podobno tylko koloruje składnie?.
I dlaczego nie działa z pozostałymi tak jak wyżej?


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Doczytaj co robi htmlspecialchars
Go to the top of the page
+Quote Post
Kloc
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Zamienia niebezpieczne znaki na bezpieczne. Ale gdy nie ma highlight_string to wszystko dziala normalnie.
Nie wiem dlaczego one ze sobą kolidują.


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Bo funkcja kolorująca sama zamienia znaki na encje. Zobacz sobie przykład 1 z manuala.
Go to the top of the page
+Quote Post
Kloc
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Chyba wiem o co chodziło. Htmlspecialhars() zamienia znaczki nie bezpieczne na bezpieczne. czyli < w wyglądzie jest dalej < ale już nie ma tego znaczenia.
A heightlight_string() przyjmuje tylko string o normalnym znaczeniu, ja tą funkcję wywołuję już za Htmlspecialhars() i string już nie ma prawidłowego znaczenia i dlatego heightlight_string() jeszcze raz to miel i oto taki efekt. Jak wywołam ją przed Htmlspecialhars() to działa prawidłowo, lecz wywala kod, który ma kolorować składnię, ale to już wina Htmlspecialhars().
Czyli z praktyki wyszło mi, że funkcję htmlspecialhars() i nl2br() można zastąpić jedną heightlight_string().


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
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 Aktualny czas: 22.08.2025 - 05:25