У меня есть цикл PHP, который добавляет данные в ячейку таблицы. Тем не менее, я хочу применить статический размер к ячейке таблицы, поэтому, если будет возвращено больше данных, чем может помещаться внутри ячейки, я хочу, чтобы лишние символы были отрезаны и заканчивались «…»,
Например, одна запись данных содержит 270 символов, но только первые 100 отображаются в ячейке таблицы. Следуйте за "…"
Есть идеи, как это сделать?
Благодаря!
if (strlen($str) > 100) $str = substr($str, 0, 100) . "...";
Вы можете использовать mb_strimwidth
printf('<td>%s</td>', mb_strimwidth($cellContent, 0, 100, '…'));
Если вы хотите обрезать границы слов, см.
Вы также можете управлять отображением содержимого с помощью свойства text-overflow: ellipsis
CSS text-overflow: ellipsis
К сожалению, поддержка браузера меняется.
function print_dots($message, $length = 100) { if(strlen($message) >= $length + 3) { $message = substr($message, 0, $length) . '...'; } echo $message; } print_dots($long_text);
$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";