Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Dynamiczne ucinanie tekstu
demoniczny
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.07.2011

Ostrzeżenie: (0%)
-----


Witam!

Mam problem ze stworzeniem funkcji która automatycznie ucinała by tekst...
Jak wiadomo funkcja substr() robi to świetnie ale problem jest gdy w skrypcie jest używane bbcode...
gdybym miał użyć na tekscie przykład:
  1. //nawiasy bo zamienia bbcode na html
  2. $tekst = "[(b)]Ala ma kota[(/b)]"; //11 znaków bez bbcode 18 z bbcode
  3.  
  4. //A mój skrypt ma wyświetlić tylko 11 znaków... normalnie można to zrobić tak...
  5.  
  6. if(strlen($tekst)>11)
  7. {
  8. echo substr($tekst, 0, 11); //Wynikien tego "<b>Ala ma k"
  9. }else{
  10. echo $tekst;
  11. }


Jak widać przykład na górze jest beznadziejny... ja bym chciał aby najpierw zostały wycięte wszystkie znaki bbcode...
Następnie funkcją strlen wyliczenie 11 i dodanie bbcode i zamiana str_replace...

A jeszcze lepiej by było jak by znajdował niedomknięte znaczki czyli Ala ma kota a kot ma Ale (11 znaków to byłby wynik), nawet z rozwiązaniem które przedstawiłem na górze nie będzie to dawało oczekiwanego rezultatu...
Tak więc najlepszym rozwiązaniem by było gdyby uciął Ala ma kota i sam dodał brakujące </b> na końcu...

Zacząłem rozpisywać to sobie wszystko na kartce co bym mógł od czego odciąć wyliczyć itp... itd... ale totalnie się potraciłem dlatego czekam na wskazówki...

Ten post edytował demoniczny 24.08.2011, 16:54:45
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Hmmm a nie możesz najpierw potraktować tekst z bbcode funkcją str_replace, który usunie bbcode następnie policzyć znaki i dodać za 11 bbcode? Oczywiście wcześniej zapisz sobie do tablicy wszystkie bbcode, żebyś wiedział jak je odtworzyć.

ps. zobacz też do działu Gotowe rozwiązania ->Klasy i funkcje jest tam gotowa klasa bbcode, może tam znajdziesz rozwiązanie swojego problemu
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 21:54