Я пытаюсь усечь текст, полученный с помощью mysql_fetch_array
, но по какой-то причине strlen
не может быть рассчитан правильно. Мой код выглядит следующим образом:Как усечь текст, полученный из базы данных MySQL, и добавить эллипсы?
while($row = mysql_fetch_array($result)) {
$text = $row['text'];
$moretext = $row['moretext'];
if (strlen($text) > 210 || strlen($moretext) > 210) {
$text = substr($text, 0, 210)."...";
$moretext = substr($moretext, 0, 210)."...";
}
}
Как заставить это работать так, что он вычисляет длину текста и присоединяет эллипсы, если он превышает указанную сумму, в данном случае 210 символов.
Какой результат вы получаете, что заставляет вас поверить, что strlen не может быть рассчитан правильно? Кроме того, в каком формате находятся столбцы «text» и «moretext» таблицы mysql? –
@GabrielRoth это просто текст UTF8. Я не уверен, правильно ли вычисляется 'strlen', поскольку он добавляет эллипсы, даже если текст находится под указанной суммой. Самая большая проблема заключается в том, что он автоматически добавляет эллипсы, если их всего 20 символов, но текст содержит знак вопроса. – Daphne
Вы видели многобайтовую функцию strlen php [mb_strlen()] (http://www.php.net/manual/en/function.mb-strlen.php)? –