Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja htmlentities() - problem
todaro
post 17.02.2008, 15:00:01
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.11.2007

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


W swoim skrypcie użyłem funkcji htmlentities() aby móc wczytać zawartość pliku .txt do <textarea> ( musiałem skorzystać z tej funkcji ponieważ w pliku .txt też mam znacznik <textarea> ). Następnie po przejściu przez formularz muszę zmienić tekst na taki jak był przed użyciem funkcji htmlentities(). Użyłem do tego dwóch funkcji stripslashes() i html_entity_decode() , ale niestety po przejściu przez te funkcje nadal zostają niechciane znaki, np. &_#179; ( bez _ ) zamiast ł , &_#177; ( bez _ ) zamiast ±. Nie mam pomysłu jakiej funkcji użyć aby zamienić te znaki na prawidłowe.
Go to the top of the page
+Quote Post
dziurson
post 17.02.2008, 15:08:11
Post #2





Grupa: Zarejestrowani
Postów: 145
Pomógł: 16
Dołączył: 19.07.2007
Skąd: Elbląg

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


Takie cos używam przed:
  1. <?php
  2. $zmien1 = ereg_replace("&([[:alnum:]]*;)", "&_amp;1", $pobierz);
  3. $zmien2 = str_replace("</textarea>", "&_lt;/textarea&_gt;", $zmien1);
  4. ?>


A takie coś przy przesyłaniu do zapisu:
Kod
<script language="javascript">
function zapisz () {
var a = document.formal.txt.value;

for (var i = 0, chr = '', str = ''; i < a.length; i++)
    {
        chr = a.charAt(i);
             if (chr == '<') str += '&_lt;';
        else if (chr == '>') str += '&_gt;';
        else if (chr == '"') str += '&_quot;';
        else if (chr == "'") str += '&_#039;';
        else if (chr == "\\") str += '&_#092;';
        else str += chr;
    }
        chr = "<? ereg_replace("&([[:alnum:]]*;)", "&_amp;\\1","?>chr<?");?>";
        document.formal.txt.value = str;
        return true;
}
</script>


tylko bez tych _ przy &


--------------------
Go to the top of the page
+Quote Post
todaro
post 17.02.2008, 15:26:06
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.11.2007

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


Zrobiłem coś takiego.

Kod
$tresc = str_replace("&_#161;", 'ˇ', $tresc);
$tresc = str_replace("&_#198;", 'Ć', $tresc);
$tresc = str_replace("&_#202;", 'Ę', $tresc);
$tresc = str_replace("&_#163;", 'Ł', $tresc);
$tresc = str_replace("&_#209;", 'Ń', $tresc);
$tresc = str_replace("&_#166;", '¦', $tresc);
$tresc = str_replace("&_#172;", '¬', $tresc);
$tresc = str_replace("&_#175;", 'Ż', $tresc);
$tresc = str_replace("&_#177;", '±', $tresc);
$tresc = str_replace("&_#230;", 'ć', $tresc);
$tresc = str_replace("&_#234;", 'ę', $tresc);
$tresc = str_replace("&_#179;", 'ł', $tresc);
$tresc = str_replace("&_#241;", 'ń', $tresc);
$tresc = str_replace("&_#182;", '¶', $tresc);
$tresc = str_replace("&_#188;", 'Ľ', $tresc);
$tresc = str_replace("&_#191;", 'ż', $tresc);


dziurson, dzięki za podpowiedź, twój kod jest trochę niezrozumiały dla mnie, dlatego napisałem swój.
Go to the top of the page
+Quote Post
dziurson
post 17.02.2008, 15:32:41
Post #4





Grupa: Zarejestrowani
Postów: 145
Pomógł: 16
Dołączył: 19.07.2007
Skąd: Elbląg

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


Ah, było mówić że chciałeś zamieniać polskie znaki smile.gif

Mój kod służy do poprawnego wyświetlenia pliku (czy to html czy to php czy innych) w polu textarea.


--------------------
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: 19.07.2025 - 18:20