![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 16 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam,
pobieram z bazy jakiś ciąg znaków, który potem "przepuszczam" przez trim(), strip_tags(), a następnie wycinam z niego za pomocą substr() 60 pierwszych znaków. To co wycinam pojawia się potem w "chmurce". Problem jest w tym, że niektóre działają poprawnie, ale są też takie, które nie działają (chmurka się nie wyświetla) i jak na moje oko są tam jeszcze jakieś znaki, których nie widać. Jak się mylę to powiedzcie czemu tak się dzieje, a jak mam rację to powiedzcie jak je usunąć. Przykład: ten nie działa:
ten działa:
Pozdrawiam! Ten post edytował novy85 11.10.2008, 18:56:32 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy pomysł to używanie Unikodu. W przypadku UTF-8 znaki o kodach od 128 (m.in. polskie litery) zapisywane są za pomocą dwóch i więcej bajtów. Korzystając ze zwykłego substr() może się zdarzyć, że przypadkowo rozetniesz taki znak Unikodu na pół i wtedy dostaniesz śmieci, gdyż przeglądarka nie będzie w stanie tego poprawnie przeczytać. Obsługa Unikodu w standardowych funkcjach PHP pojawi się dopiero z wersją 6, póki co możesz spróbować użyć funkcji z rozszerzenia mbstring właśnie do obsługi kodowań wykorzystujących więcej, niż 1 bajt. Gdzieś kiedyś w sieci widziałem też bibliotekę z zamiennikami napisanymi w PHP; próbowałem ją przed chwilą odnaleźć, ale nie wyszło. Może ktoś inny będzie wiedzieć.
Oczywiście jeśli nie korzystasz z tego kodowania, przyczyna leży gdzie indziej i wtedy mój post za wiele Ci nie da. PS. Tego dodatkowego kodu to nie mogłeś naprawdę umieścić podczas pisania posta, tylko dopiero jak ja już odpisałem? Nawiasem mówiąc stosuj znaczniki formatujące... Ten post edytował Zyx 11.10.2008, 18:52:05 -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 16 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
zauważyłem, że problem pojawia się w przypadku kiedy w edytorze TinyMCE jest jakieś zdanie a następnie zrobiony "ENTER" i następne zdanie. w TinyMCE zapisze to tak np.
i problemem jest ten nieszczęsny "ENTER" - sprawdzałem, jak usunąłem go ręcznie w bazie to wszystko działa już sobie poradziłem:
Ten post edytował novy85 11.10.2008, 20:15:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:53 |