Форум → Сообщество → Флейм → Научите кота уму-разуму
Научите кота уму-разуму
-
-
-
1 июня 2011 г. 19:50, спустя 5 часов 14 минут 7 секунд
artoodetoo, спасибо, это ответ на мой вопрос.
Но я подумал, что мне нужно также не допускать длины каждой из строк более 2000 знаков.
Написал вот такую штуку:{
$lines = explode ('<br />',$post["message"]); // detect long posts, cut
$post["message"] = '';
for($i=0; $i<count($lines); $i++) {
if ($i>10 || (strlen($post["message"])+ strlen($lines[$i])) > 2006) {
$len = 2006 - strlen($post["message"]);
if($len > 100) {
$post["message"] .= substr($lines[$i],0, $len).'…';
}
$post["message"] .= '<br /><em>'.sprintf($txt['post_cut'], $postlink).'</em>';
break;
}
$post["message"] .= $lines[$i].'<br />';
}
} -
1 июня 2011 г. 23:15, спустя 3 часа 25 минут 14 секунд
мдеа, интересный код ;D….
При каждой итерации будет выполнятся count(), памяти ведь много….
и кстати, если тэг окажется разрезанным твоим чудо кодом ? -
2 июня 2011 г. 0:24, спустя 1 час 9 минут 11 секунд
При числе итераций меньше 10 count вряд ли много съест моей памяти.{
$lines = explode ('<br />',$post["message"]); // detect long posts, cut
$post["message"] = '';
for($i=0; $i<count($lines); $i++) {
if ($i>10 || (mb_strlen($post["message"], 'UTF-8')+ mb_strlen($lines[$i], 'UTF-8')) > 2006) {
$len = 2006 - mb_strlen($post["message"], 'UTF-8');
if($len > 100) {
$post["message"] .= closetags(substr($lines[$i],0, $len)).'…';
}
$post["message"] .= '<p><em>'.sprintf($txt['post_cut'], $postlink).'</em></p>';
break;
}
$post["message"] .= $lines[$i].'<br />';
}
}
Функцию закрытия тегов взял вот отсюда http://rmcreative.ru/blog/post/zakryt-nezakrytye-tegi . -
21 июня 2011 г. 23:07, спустя 19 дней 22 часа 42 минуты
Встретился в коде с синтаксисом вида
$var{1}
$var - это строка. Я так понял, что берется символ, соответствующий числу, вычисленному внутри фигурных скобок.
Как это называется? Хочу ознакомиться с доками об этом, а нагуглить ну никак не получается. -
Пожалуйста, авторизуйтесь, чтобы написать комментарий!