ugrás a tartalomhoz

Hosszú sorok csonkítása

Anonymous · 2006. Jún. 13. (K), 12.31
Melyik az a fügvény amellyel egy sqlből lekérdezett szöveget lerövidít mondjuk úgy hogy az egész mondatból 70karakter látszik.
Pl. a "Nyomatékosan felhívjuk a figyelmet, hogy a téma indítására szánt kérdés/felvetés az alábbi szövegmezőben és nem hozzászólásként adandó meg!" mondatot "Nyomatékosan felhívjuk a figyelmet, hogy.." mondatra alakítja.
 
1

UTF-8

Poetro · 2006. Jún. 13. (K), 12.48
Például UTF-8 szöveg csonkítására lásd a következőt:
http://api.drupal.org/api/4.7/function/truncate_utf8
2

sablon szinten?

Anonymous · 2006. Jún. 13. (K), 13.27
smarty modifierrel:
  1. <?php  
  2. function smarty_modifier_text_cut($txt$size$check_space=true)  
  3. {  
  4.     for($i=0;$i<strlen($txt);$i++)  
  5.     {  
  6.         if(($i >= $size))  
  7.         {  
  8.             if($check_space == true)  
  9.             {  
  10.                 if(substr($txt$i, 1) == " ")  
  11.                 {  
  12.                     break;  
  13.                 }  
  14.             }  
  15.             else  
  16.             {  
  17.                 break;  
  18.             }  
  19.   
  20.         }  
  21.     }  
  22.     if($check_space==true)  
  23.     {  
  24.         return substr($txt, 0, $i);  
  25.     }  
  26.     else  
  27.     {  
  28.         if($txt == substr($txt, 0, $i))  
  29.         {  
  30.             return $txt;  
  31.         }  
  32.         else  
  33.         {  
  34.             return substr($txt, 0, $i)."...";  
  35.         }  
  36.     }  
  37. }  
meghivni meg
{$szoveg|text_cut:70:true}
5

van másik

Anonymous · 2006. Jún. 13. (K), 19.34
Van erre beépített modifier is:
{$szoveg|truncate:30:"..."}

-- hector
3

van erre beépített fv is

breakline · 2006. Jún. 13. (K), 15.26
Ez sokkal egyszerűbb:
  1. <?php  
  2.   
  3. $szoveg="Már megritkult a szó. Ültünk a tág verandán.  
  4. Sötét fény csillogott az ordas óboron,  
  5. És hallottuk, amint egy álmodó torony  
  6. Tünődve felneszel, és éjfelet ver andán.";  
  7.   
  8. $csonka_szoveg=substr($szoveg,0,20)."...";  
  9.   
  10. ?>  
üdv
BL
4

Szóhatár

Poetro · 2006. Jún. 13. (K), 15.37
Sajnos az előbbi nem működik (egyenlőre) UTF-8 szövegeken (PHP 6-tól kezdve fog), és nem nézi a szóhatárt se.
6

és mb_string-el

toxin · 2006. Jún. 13. (K), 20.48
mbstring-el müxik?

mittumén pl
  1. <?php  
  2.   
  3. function trunc($text,$length=20){  
  4.     if (!extension_loaded('mbstring'))  
  5.     {  
  6.         if (!ini_get('enable_dl') || ini_get('safe_mode')) return false;  
  7.         $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';  
  8.         if (!dl($prefix . 'mbstring.' . PHP_SHLIB_SUFFIX)) return false;  
  9.     }  
  10.       
  11.     while ($text{$length}!=' '$length++;  
  12.     return mb_substr($text,0,--$length)."...";  
  13. }  
  14.   
  15. $szoveg="Már megritkult a szó. Ültünk a tág verandán.  
  16. Sötét fény csillogott az ordas óboron,  
  17. És hallottuk, amint egy álmodó torony  
  18. Tünődve felneszel, és éjfelet ver andán.";  
  19.   
  20. Header("Content-type: text/html; ""charset=UTF-8");  
  21. Header("Content-encoding: UTF-8");  
  22. echo trunc($szoveg);  
  23.   
  24. ?>   
*javítva, megnéztem megy-e, mostmár igen :)