// PrintBrief : Only introduction words (brief) are printed, multibyte safe
// IMPORTANT: assumed that no tag has been used in input string
// output's last word be a meaningful word, no need to worry about erroneous multibyte slicing
// $str : string input string to be written briefly
// $max_chars : number if string is longer than $max_chars, only first $max_chars will be the source string
// $encoding : string multibyte encoding
function PrintBrief ($str , $max_chars = ALLOWED_NUM_OF_CHARS, $encoding = "UTF-8")
{
mb_regex_encoding($encoding);
mb_internal_encoding($encoding);
if (mb_strlen($str , $encoding) > $max_chars)
{
$str = mb_substr($str , 0 , $max_chars , $encoding);
$w = array();
$w = mb_split(' ',$str);
$k = array_pop($w);
$k = trim(implode(' ', $w));
$punc = array(';' , ',');
for ($i = 1 ; $i <= count($punc) ; $i++)
{ $k = rtrim($k , $punc[$i]); }
return $k.' ...';
}
else
{
return $str;
}
}
사용 예 :
$str = 'şğıöç İĞŞ ĞŞĞŞ Öİ ÇÇ Orta Amerika\'nın en büyük ülkesi Nikaragua\'nın başkenti Managua dün sabaha karşı büyük bir patlamayla sarsıldı. Olayın, şehre düşen ufak bir meteroit sonucu açılan krater çukurundan kaynaklandığı anlaşıldı. 1 milyon 200 bin kişinin yaşadığı ve bünyesinde ulsulararası bir havalimanının da olduğu şehre meteorit düşmesi sonucu, sürpriz bir şekilde can veya mal kaybı yaşanmadı ancak 12 metre çapında bir krater çukuru açıldı ve patlama neredeyse şehrin tamamında hissedildi.';
ALLOWED_NUM_OF_CHARS = 300
echo PrintBrief ($str);
출력 설정에 호출 이후 :
S
»««««««««««««»««««««««»««»«»«»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»Nikaragua'nın başkenti»마누아 누나와 함께하는 마라 구 아구아나 파 마라. Olayın, şehre düşen ufak bir meteroit sonucu açılan krater çukurundan kaynaklandığı anlaşıldı. 1 milyon 200 빈 상자에 담아서 ... 자세히