2010-12-27 2 views
0

У меня есть цикл PHP, который добавляет данные в ячейку таблицы. Тем не менее, я хочу применить статический размер к ячейке таблицы, поэтому, если будет возвращено больше данных, чем может помещаться внутри ячейки, я хочу, чтобы лишние символы были обрезаны и заканчивались «...»Ограничение количества символов, отображаемых в ячейке таблицы

Например , один ввод данных имеет 270 символов, но только первые 100 отображаются в ячейке таблицы. Следуйте по «...»

Любые идеи о том, как это сделать?

Спасибо!

ответ

8
if (strlen($str) > 100) $str = substr($str, 0, 100) . "..."; 
+0

приятный один лайнер +1 –

0
function print_dots($message, $length = 100) { 
    if(strlen($message) >= $length + 3) { 
    $message = substr($message, 0, $length) . '...'; 
    } 

    echo $message; 
} 

print_dots($long_text); 
0
$table_cell_data = ""; // This would hold the data in the cell 
$cell_limit  = 100; // This would be the limit of characters you wanted 

// Check if table cell data is greater than the limit 
if(strlen($table_cell_data) > $cell_limit) { 
    // this is to keep the character limit to 100 instead of 103. OPTIONAL 
    $sub_string = $cell_limit - 3; 

    // Take the sub string and append the ... 
    $table_cell_data = substr($table_cell_data,0,$sub_string)."..."; 
} 

// Testing output 
echo $table_cell_data."<br />\n"; 
1

Вы можете использовать mb_strimwidth

printf('<td>%s</td>', mb_strimwidth($cellContent, 0, 100, '…')); 

Если вы хотите укоротить по границам слов см

Вы также можете контролировать отображение контента с помощью свойства CSS text-overflow: ellipsis

К сожалению, поддержка браузера меняется.

Смежные вопросы