Въпрос за "substr"

rotator

Registered
Значи имам следното
if (strlen($row['title']) > 31) { $dotts = '...'; } else { $dotts = ''; }
$stitle = substr($row['title'],0,31);
Записвам в база от данни с чарсет utf-8 когато текста е на en си изкарва всички 31 симбола обаче когато текста е на bg изкарва само около 15 символа. Та въпросът ми е защо е така? И мога ли да го оправя да си изкарва нормално и при двата езика? + 1
 
Да сега изкарва и бг текста толкоз символа обаче сега нещо не ми изкарва точките където трябва.. изобщо ги няма само реже текста без да слага точките?
if (mb_substr($row['title'], 0, null, "utf-8") > 30) { $dotts = '...'; } else { $dotts = ''; }
$stitle = mb_substr($row['title'], 0, 30, "utf-8");

:cry:
 
function tochki($text) {
if (mb_strlen($text) > 30) { return mb_substr($text, 0, 30, "utf-8") . "..."; }
else { return $text; }
}

echo tochki($row['title']);

пробвай с тази функция
 
Код:
if (mb_substr($row['title'], 0, null, "utf-8") > 30) { $dotts = '...'; } else { $dotts = ''; }
$stitle = mb_substr($row['title'], 0, 30, "utf-8").$dotts;
 
Код:
if (strlen($row['title']) > 30) { $dotts = '...'; } else { $dotts = ''; }
$stitle = mb_substr($row['title'], 0, 30, "utf-8").$dotts;
 
+1 Жорка :?: EDIT: Слага точки преждевременоо :( (Смисъл по малко са от 30 символа и пак слага ... на бг символите)
 
Просто е забравил и strlen да го направи с mb_

Ето ти го крайният код:

Код:
if (mb_strlen($row['title'], "utf-8") > 30) { $dotts = '...'; } else { $dotts = ''; }
$stitle = mb_substr($row['title'], 0, 30, "utf-8").$dotts;
 

Back
Горе