Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wstawienie określonego textu po określonej ilości znaków
nekomata
post
Post #1





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Witam , przejdę odrazu do rzeczy, więc tworze sobie taki portalik "klanowy" ale mam problem z jedną rzeczą mianowicie nie mogę znaleźć funkcji która umożliwiała by mi wstawienie danego ciągu znaków co daną ilość znaków(dokladnie 1600-1680)

(IMG:http://img251.imageshack.us/img251/9593/piccu.th.jpg)


Na obrazku zaznaczyłem o jaką przestrzeń mi chodzi.String który chciałbym wstawić ma po prostu zamknąć div'a i otworzyć drugiego(efekt książek na stronie (IMG:style_emoticons/default/tongue.gif) ) aktualnie strona stoi na moim localhoscie i jest w fazie produkcji... na początku poradziłem sobie z tym limitując długość postu do 420 znaków(tak wiem sic!) i 4 postów na stronie, w trakcie dodawania postu dodawałem do zmiennej +1 a gdy zmienna osiągała 4 wstawiałem znacznik następnej strony.jednak teraz chciałbym się pozbyć tego limitu bo jednak 420 znaków bardzo ograniczałoby wolność wypowiedzi usera.Z góry dziękuję za pomoc.

Ten post edytował nekomata 20.01.2011, 23:36:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pikuss
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 8.02.2010
Skąd: Kraków

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


1) Jeśli cały post ma być przeniesiony na drugą stronę:
  1. <?php
  2. print '<div>';
  3. $ileZn = 0;
  4. while(...){ // tu jakaś twoja pętla przy pomocy której wyświetlasz posty
  5. $ileZn += strlen($post);
  6. if($ileZn > x) // x = 1600,1680 ile sobie ustawisz
  7. print '</div><div>';
  8.  
  9. print $post;
  10. }
  11. print '</div>';
  12. ?>



2) Jeśli post ma być podzielony w miejscu w którym ilość znaków przekroczyła dopuszczalną:
  1. <?php
  2. print '<div>';
  3. $ileZn = 0;
  4. while(...){
  5. $ileZn += strlen($post);
  6. if($ileZn > x){
  7. $post_cz1 = substr($post, 0, -($ileZn-x)); // urwanie postu w miejscu w którym ilość znaków przekroczyła x
  8. $spacja = strRpos($post_cz1, ' '); // ostatnie wystąpienie spacji w urwanym fragmencie
  9.  
  10. $post_cz1 = substr($post_cz1, 0, $spacja); // część pierwsza do spacji
  11. $post_cz2 = substr($post, $spacja); // część druga od spacji
  12. print $post_cz1.'</div><div>'.$post_cz2;
  13. }else
  14. print $post;
  15. }
  16. print '</div>';
  17. ?>


Mam nadzieję że dobrze zrozumiałem problem i myślę, że to powinno zadziałać. Nie jest to co prawda jakieś profesjonalne rozwiązanie, ale jest (IMG:style_emoticons/default/smile.gif) .

Ten post edytował Pikuss 21.01.2011, 00:27:45
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.09.2025 - 16:07