Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja htmlentities() - problem
Forum PHP.pl > Forum > Przedszkole
todaro
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.
dziurson
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 &
todaro
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.
dziurson
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.