![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Witam. Dziś spotkałem się z "nieco" dziwnym zachowaniem TinyMCE. Dotychczas miałem
entity_encoding wyłączone bo było zbędne i zdawałem się na czyszczenie domyślne w tym edytorze. Problem wystąpił przed chwilą. Zapis bowiem apostrofów podwójnych sprawił, że gdy podaję link w artykule czy newsie, zamienia mi je na encję quot. Nie byłoby w tym problemu, gdy by nie fakt, że taki zapis generuje doklejanie do adresu adresu bazowego strony. Co wygląda mniej więcej w pasku statusu tak: http://www.adres_bazowy.pl/"http://ww..._linku.pl". Po wejściu do edycji wszystko wygląda w porządku, ale zapis do bazy danych występuje taki: href=& quot;http://www.adres_w_linku.pl& quot; zamiast href="http://www.adres_w_linku.pl" Zmieniłem więc w sekcji init według manuala to co było potrzebne, czyli zdefiniowałem własne entities: Tyle, że nie dawałem tam znaków dla quot, by nie zamieniał. Kupa. Nadal zamienia. Pomyślałem, że będę sprytniejszy i zamienię to na encje numeryczne i ustawiłem: entity_encoding: "numeric" Teraz w bazie jest jeszcze większy zgryz, bo część encji jest oczywiście jako numeryczne, ale quot nadal jest w postaci encji normalnej, tak jakby on nie był tym objęty wcale ![]() Ktoś spotkał się z tak dziwnym zachowaniem TinyMCE względem encji? Bo to wygląda tak jakby quot miał specjalne uprawnienia w tym edytorze i był poza wszelkimi funkcjami konwertującymi. A właściwie to tyle, ze zawsze jest do nazwanej encji konwertowany, niezależnie od ustawień. EDIT: Problem rozwiązałem w sposób może mało elegancki, ale skuteczny. Jesli ktoś znajdzie rozwiązanie inne, poprzez modyfikację sekcji init, chętnie przeczytam. Na chwilę obecną moim rozwiązaniem okazało się: $tekst = str_replace('& quot;', '"', $tekst); Ale usuńcie po & spacje w temacie całym, ja musiałem je dać bo mi konwertuje forum ją do znaku apostrofa zwykłego i nie widzicie różnicy ![]() Jeśli więc ktoś będzie miał podobny problem, to jest to najszybsza metoda. Oczywiście dla utf i innych, choć wolniejsze to konieczne będzie użycie innych funkcji (preg_replace może?) dla wielobajtowych kodowań. Ten post edytował thek 23.10.2009, 13:46:00 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 10.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wiem że dość stary post, ale gdzie wstawić:
Kod $tekst = str_replace('& quot;', '"', $tekst); ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ja wstawiałem to tuż przed zapisem do bazy, ale równe dobrze może to być zrobione na etapie przed walidacja. A najprościej rzecz ujmując -> można kiedykolwiek pomiędzy momentem startu skryptu obsługizmienne $_POST a zapisem do bazy.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 09:52 |