![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam parser, który zamienia mi za pomocą preg_replace znaczniki [ b ][ /b ] na
oraz [ i ][ /i ] na w danych pobieranych z bazy. Otrzymany w ten sposób kod jest gotowy do wyświetlania na stronie. A właściwie prawie gotowy bo chciałbym go skrócić do 50 znaków (zachowując formatowanie). Skrócić do 50 znaków oczywiście część widoczną w przeglądarce. Da się to jakoś sprytnie zrobić? Ja to widzę tak: rozbić łańcuch za pomocą znaczników (każdy znacznik to miejsce podziału) i dodawać do siebie długość tych kawałków dopóki nie przekroczy 50. Jeśli przekroczy 50 to ostatni kawałek przyciąć, żeby całość była równa 50 i ewentualnie zamknąć znacznik jeśli ostatni brany pod uwagę kawałek był z wnętrza znacznika. Operacja byłaby mniej kosztowna przed parsowaniem, potem można tak skrócone wyrażenie sparsować. Może ktoś będzie miał lepszy pomysł. Wadę tego rozwiązania widzę jedną. O ile parser radził sobie z niedomkniętymi znacznikami (czyli ich nie parsował) to już ta metoda skracania sobie z nimi nie poradzi. Wystarczy, że ktoś źle domknie znacznik i już wyświetli więcej niż 50 znaków. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:52 |