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:

<?php
function smarty_modifier_text_cut($txt, $size, $check_space=true)
{
	for($i=0;$i<strlen($txt);$i++)
	{
		if(($i >= $size))
		{
			if($check_space == true)
			{
				if(substr($txt, $i, 1) == " ")
				{
					break;
				}
			}
			else
			{
				break;
			}

		}
	}
	if($check_space==true)
	{
		return substr($txt, 0, $i);
	}
	else
	{
		if($txt == substr($txt, 0, $i))
		{
			return $txt;
		}
		else
		{
			return substr($txt, 0, $i)."...";
		}
	}
}

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:

<?php

$szoveg="Már megritkult a szó. Ültünk a tág verandán.
Sötét fény csillogott az ordas óboron,
És hallottuk, amint egy álmodó torony
Tünődve felneszel, és éjfelet ver andán.";

$csonka_szoveg=substr($szoveg,0,20)."...";

?>
ü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

<?php

function trunc($text,$length=20){
	if (!extension_loaded('mbstring'))
	{
		if (!ini_get('enable_dl') || ini_get('safe_mode')) return false;
		$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
		if (!dl($prefix . 'mbstring.' . PHP_SHLIB_SUFFIX)) return false;
	}
	
	while ($text{$length}!=' ') $length++;
	return mb_substr($text,0,--$length)."...";
}

$szoveg="Már megritkult a szó. Ültünk a tág verandán.
Sötét fény csillogott az ordas óboron,
És hallottuk, amint egy álmodó torony
Tünődve felneszel, és éjfelet ver andán.";

Header("Content-type: text/html; ". "charset=UTF-8");
Header("Content-encoding: UTF-8");
echo trunc($szoveg);

?> 
*javítva, megnéztem megy-e, mostmár igen :)