[php] [klasa] AlphaStreamCutter - automatyczny łamacz linii, Lekarstwo na problem rozjeżdżających się stron ? |
[php] [klasa] AlphaStreamCutter - automatyczny łamacz linii, Lekarstwo na problem rozjeżdżających się stron ? |
21.07.2007, 18:32:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 15.04.2007 Skąd: klikash ? A stond, z tamtond, ze wszond Ostrzeżenie: (0%) |
(Użyłem wyszukiwarki i widzę że nie było takiego tematu, ale mogę się mylić. Jak było coś podobnego, to temat można skasować)
Witam, Nudziło mi się ostatnio i oprócz gry w Heroes 3, którego jestem maniakiem postanowiłem też napisać na bazie algorytmu PHP Compactera - automatyczny obcinacz/łamacz za długich linii tekstu. Przyszło mi to do głowy, bo zauważyłem że na wielu forach są straszne problemy z linkami które potrafią totalnie rozjechać całą stronę. Jak widzę, na tym forum problem jest już rozwiązany. Klasa przetwarza i łamie dowolny STRING analizując go bajt po bajcie - tak jak to robił PHP Compacter, z tym że obsługuje Czysty Text, HTML oraz BBCode. Pobrać można jak zawsze stąd: http://hypercacher.com/download_pl.html Przykładowe wywołania do przerabiania poszczególnych typów textu: Przerabianie zwykłego tekstu:
Przerabianie kodu HTML:
Przerabianie Text+BBCode:
Gdzie parametr o wartości 40 - to maksymalna długość ciągu. Początek klasy wygląda tak:
Ten post edytował SoofMan 24.07.2007, 10:38:10 -------------------- |
|
|
21.07.2007, 20:19:36
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%) |
Jeśli klasa ma być wygodna w używaniu, to jako pierwszy argument podawałbym stringa, a nie liczbę. Mało to przyjemne, pamiętać jaka liczba oznacza tekst, jaka HTML, a jaka BBCODE.
Inna sprawa, że klasa jest *chyba* dość mało przydatna? Znakomita większość tekstu umieszczanego na stronach nie jest pisana fontem o stałej szerokości znaków. Natomiast gdy już taki font jest używany, to zazwyczaj do zapisania kodu programu/strony, który lepiej wygląda gdy nie jest łamany. P.S. Polecam Wesnoth ;-) Uwaga, gra portafi wciągnąć :-) |
|
|
22.07.2007, 19:57:28
Post
#3
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Szczerze przyznam, że nie widzę sensu tworzenia takiej klasy. Jeśli jakiś string jest za długi, to obcinam go przy pomocy substr lub mb_substr. A jeśli nie chcę obcinać, tylko zawinąć to używam wordwrap.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
22.07.2007, 20:38:03
Post
#4
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 15.04.2007 Skąd: klikash ? A stond, z tamtond, ze wszond Ostrzeżenie: (0%) |
Szczerze przyznam, że nie widzę sensu tworzenia takiej klasy. Jeśli jakiś string jest za długi, to obcinam go przy pomocy substr lub mb_substr. A jeśli nie chcę obcinać, tylko zawinąć to używam wordwrap. Ale nie przewidziałeś że jak utniesz TAG html albo BBCode w połowie, to cały kod ci się rozleci i efekt końcowy będzie różny od zamierzonego... Ta klasa obcina text i dodatkowo przy tym uważa żeby nie popsuć tagów. -------------------- |
|
|
22.07.2007, 20:44:58
Post
#5
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Jakoś nigdy nie miałem z tym problemu. Jeśli muszę obciąć jakiś tekst z tagami HTML to je wpierw usuwam. A dlaczego? Ano dlatego, że jeśli wytnę wszystko po setnym znaku i okaże się że wyciąłem zamknięcie tabeli, będzie jeszcze gorzej.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
22.07.2007, 21:11:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 15.04.2007 Skąd: klikash ? A stond, z tamtond, ze wszond Ostrzeżenie: (0%) |
Jakoś nigdy nie miałem z tym problemu. Jeśli muszę obciąć jakiś tekst z tagami HTML to je wpierw usuwam. A dlaczego? Ano dlatego, że jeśli wytnę wszystko po setnym znaku i okaże się że wyciąłem zamknięcie tabeli, będzie jeszcze gorzej. Wiesz.... tutaj akurat chodzi o wstawianie tekstu do forum lub systemu komentarzy. Taki tekst ma często atrybuty - takie jak dodatkowe kolory, pogrubienie, ukośny tekst które realizowane są w HTMLu/BBCode. Tam nie masz wyjścia - jak masz tekst z BBCode to musisz go wstawić razem z BBCode. A jeżeli BBCode przerabiasz najpierw na HTML, to i tak ten HTML musisz wstawić do bazy. A jeżeli wstawiasz HTML do bazy i wstawisz NIEPORAWNY, to już zostanie niepoprawny i przy jego wyświetlaniu strona będzie się rozjeżdżać... Ten post edytował SoofMan 22.07.2007, 21:13:32 -------------------- |
|
|
23.07.2007, 07:27:40
Post
#7
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Cytat A jeżeli wstawiasz HTML do bazy i wstawisz NIEPORAWNY, to już zostanie niepoprawny i przy jego wyświetlaniu strona będzie się rozjeżdżać... Zgadza się. Jednak chodzi mi o to, że gdy wstawiam do bazy jakiś komentarz, to wstawiam wszystko, a nie obcinam do iluś znaków. Tekst się obcina po to, by wyświetlić fragment wiadomości w mailu, kanale rss lub na liście wiadomości. I jeśli w tym miejscu usuniesz zamknięcie tabeli, listy lub innego elementu html, wówczas wszystko się rozjedzie. I dlatego w takich miejscach usuwam znaki html, a do zabawy z ciągiem używam funkcji, które wymieniłem w pierwszym poście. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
23.07.2007, 15:49:35
Post
#8
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 15.04.2007 Skąd: klikash ? A stond, z tamtond, ze wszond Ostrzeżenie: (0%) |
Zgadza się. Jednak chodzi mi o to, że gdy wstawiam do bazy jakiś komentarz, to wstawiam wszystko, a nie obcinam do iluś znaków. Tekst się obcina po to, by wyświetlić fragment wiadomości w mailu, kanale rss lub na liście wiadomości. I jeśli w tym miejscu usuniesz zamknięcie tabeli, listy lub innego elementu html, wówczas wszystko się rozjedzie. I dlatego w takich miejscach usuwam znaki html, a do zabawy z ciągiem używam funkcji, które wymieniłem w pierwszym poście. Tak też można. To jedno z możliwych rozwiązań problemu. Ale jeżeli chcesz mieć w bazie HTML/BBCode to wtedy taki skrypt/klasa jest potrzebny(a). -------------------- |
|
|
23.07.2007, 19:20:12
Post
#9
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Mam w bazie HTML i nie używałem do tego tej klasy.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
23.07.2007, 19:22:28
Post
#10
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 15.04.2007 Skąd: klikash ? A stond, z tamtond, ze wszond Ostrzeżenie: (0%) |
Mam w bazie HTML i nie używałem do tego tej klasy. Przecież nikt cię nie zmusza, spokojnie - luz -------------------- |
|
|
23.07.2007, 19:32:54
Post
#11
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
W każdym bądź razie poznaliśmy swoje zdania na temat tej klasy. Niech inni też oceniają.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 17:23 |