Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ogólnie slowotworstwo :)
T-rex
post 5.02.2006, 20:49:12
Post #1





Grupa: Zablokowani
Postów: 34
Pomógł: 0
Dołączył: 27.03.2004

Ostrzeżenie: (20%)
X----


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


--------------------
brak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Kshyhoo
post 5.02.2006, 20:58:32
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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); ?>


Ten post edytował Kshyhoo 5.02.2006, 21:05:31


--------------------
Go to the top of the page
+Quote Post
Sabistik
post 5.02.2006, 21:06:04
Post #3


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


zaokraglanie do okreslonej liczby znakow nie ucinajac przy tym wyrazu..
  1. <?php
  2.  
  3. echo substr($sString, 0, strpos($sString, ' ', 100));
  4.  
  5. ?>
Go to the top of the page
+Quote Post
T-rex
post 6.02.2006, 06:55:49
Post #4





Grupa: Zablokowani
Postów: 34
Pomógł: 0
Dołączył: 27.03.2004

Ostrzeżenie: (20%)
X----


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 ....


--------------------
brak?
Go to the top of the page
+Quote Post
crash
post 6.02.2006, 08:09:29
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


A poczytałeś o funkcji wordwrap?


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:33