Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ogólnie slowotworstwo :)
Forum PHP.pl > Forum > Przedszkole
T-rex
jak mam sobie jakis tekst ... dlugi tekst wyciagniety z bazy, to jak przypisac do zmiennej tylko np. jego pierwsze 200 znakow questionmark.gif pociac calosc na tablice i zlaczyc pierwsze 200 ?

a jak mam jakis tekst, i chce sie zabezpieczyc, aby ktos nie wpisal slowa np dl. 400 znakow i mi nierozwalil strony, to jak wykryc takie slowa i je pociac questionmark.gif
Kshyhoo
Znaleziono na forum:
  1. <?php 
  2. function ciach($tresc,$ile) 
  3. { 
  4. // obliczamy ilość znaków w tekscie 
  5. $licz = strlen($tresc); 
  6. // sprawdzamy, czy ilość znaków w tekscie jest większa 
  7. // lub równa liczbie znaków po jakiej tekst ma być obcięty 
  8. if ($licz>=$ile) 
  9. { 
  10. // obcinamy tekst o określoną ilośc znaków 
  11. $tnij = substr($tresc,0,$ile); 
  12. // dodajemy kropeczki (...) 
  13. $txt = $tnij."..."; 
  14. } 
  15. else 
  16. { 
  17. // jeżeli warunek nie jest spełniony pozostawiamy tekst bez zmian 
  18. $txt = $tresc; 
  19. } 
  20. // zwracamy wynik działania funkcji 
  21. return $txt; 
  22. } 
  23. // przykładowy tekst 
  24. $tresc = "Co potrafi php? Wszystko. php jest rozwijane pod kątem pisania skryptów server-side, więc możesz zrobić wszystko co potrafią inne programy CGI, jak na przykład
     odbierać dane z formularzy, generować dynamicznie zawartość strony, lub odbierać
     i wysyłać ciasteczka."
    ; 
  25. // ilość znaków - po tej ilości tekst zostanie obcięty 
  26. $ile = 100; 
  27. // wywołujemy funkcję 
  28. echo ciach($tresc,$ile); 
  29.  
  30. ?>

A zabezpieczenie przed długimi wpisami, również z tego forum:
  1. <?php
  2. //dzielimy cały wpis i zamieniamy na tablicę
  3. $nowatresc=explode(" ",$tresc);
  4. //liczymy elementy tablicy
  5. $total=sizeof($nowatresc);
  6. //przy pomocy pętli pobieramy każdy element tablicy i mierzymy
  7. for($i=0; $total > $i; $i++){
  8. //jeśli długość któregoś z elementów tablicy przekracza 30 znaków
  9. //zmienna weryfikacja jest pusta
  10. if(strlen($nowatresc[$i])>"30"){
  11. $weryfikacja="";
  12. }}
  13. //jeśli weryfikacja jest pusta informujemy że wystąpił błąd
  14. if ($weryfikacja!="ok") {
  15. echo"Za długi wyraz, chińczyków nie obsługujemy";
  16. }
  17. else {
  18. echo"Wszystko w porządku";
  19. //tu wykonują się dalsze czynności skryptu
  20. //jeśli wszystko jest w porządku
  21. }
  22. ?>

I jeszcze:
  1. <?
  2. //na wszelki wypadek usuwamy tagi html-a
  3. $text = strip_tags($text);
  4. //zamieniamy tekst na tablicę
  5. $element = explode(" ",$text);
  6. //zliczamy ilość elementów tablicy
  7. $total = sizeof($element);
  8. //wykonujemy pętle
  9. for($i=0; $i < $total+1; $i++){
  10. //jesli długość elementu jest większa od 50
  11. //wstrzymujemy działanie skryptu
  12. if(strlen($element[$i]) > 50){
  13. die("Używasz za długich słów");
  14. }
  15. }
  16. //i możemy znów wszystko połączyć np. tak:
  17. $text = implode(" ",$element);
  18.  
  19. echo $text;
  20. ?> 

W sumie najprościej to tak:
  1. <? $tekst = wordwrap($tekst, 50, " ", 1); ?>
Sabistik
zaokraglanie do okreslonej liczby znakow nie ucinajac przy tym wyrazu..
  1. <?php
  2.  
  3. echo substr($sString, 0, strpos($sString, ' ', 100));
  4.  
  5. ?>
T-rex
ok, ale tto mi daje info czy jakis wyraz jest zadlug czy nie, a ja chce jesli jest zadlugo nie informowac o tym tylko go podzielic spacja np co 50 znakow ....
crash
A poczytałeś o funkcji wordwrap?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.