Już od jakiegoś czasu próbuje rozwiązać mikroskopijny problem (który jest obecny w IPB, phpBB, ale np. allegro go nie ma), polegający na umieszczeniu domyślnej treści formularza wyświetlonej dokładnie w ten sam sposób, jak została wprowadzona. Mam na mysli wszystkie znaki specjalne, które użytkownik widzi w np. polu textarea.
Aby to dokonać [powierzchownie] wystarczy zwykłe zastosowanie stripslashes i htmlspecialchars na treści przekazanej w formularzu i jakiś preg dla znaków specjalnych innych od <, >, &.
<?php echo '<form method="post"> <textarea name="abc">'.$content.'</textarea> <input type="submit" /> </form>'; ?>
Ale...
Wprowadzając znaki specjalne różne od <, >, & w postaci wizualnej, encji angielskiej i encji numerycznej pojawiają się problemy. Wstawiając do formularza np. znaczka « [lewy znak cytowania] np. poprzez kopiowanie, czy kombinacje alt+numerki, po wysłaniu zostanie on odczytany jako 8#171; [oczywiście &=8]. Jeżeli obok umieścimy encję wpisaną ręcznie: 8#171;, to zostanie ona również automatycznie zamieniona na znak specjalny, jedynie « zostanie wyświetlone dokładnie z oryginałem.
Teraz do jeszcze raz powtórzę do czego zmierzam:
Chcę, zobaczyć w okienku textarea dokładnie taką samą treść jaką wysłałem, na IPB, phpBB to nie działa w sposób 100%. Dowód:
Wysyłam: « - 8laquo; 8#171;
Otrzymuję: « - 8laquo; « lub « - « - «
Chcę otrzymać: « - 8laquo; 8#171;
Encja numeryczna zamieniana wyświetlana jest od razu jako znak specjalny.
Encja angielska widoczna jest jako encja, ale w formularzu wyświetlana jest jako znak specjalny.
Sami możecie sprawdzić na podglądzie.
Czekam na dyskusję.