我有一个PHP循环,可以将数据添加到表格单元格中。但是,我想将静态大小应用于表格单元格,因此如果返回的数据超出了单元格内部的数据,我希望多余的字符被截断并以“...”结尾
例如,一个数据条目有270个字符,但只有前100个字符显示在表格单元格中。跟着“......”
关于如何做到这一点的任何想法?
谢谢!
答案 0 :(得分:8)
if (strlen($str) > 100) $str = substr($str, 0, 100) . "...";
答案 1 :(得分:1)
您可以使用mb_strimwidth
printf('<td>%s</td>', mb_strimwidth($cellContent, 0, 100, '…'));
如果要截断字边界,请参阅
您还可以使用CSS属性text-overflow: ellipsis
不幸的是,浏览器支持各不相同。
答案 2 :(得分:0)
function print_dots($message, $length = 100) {
if(strlen($message) >= $length + 3) {
$message = substr($message, 0, $length) . '...';
}
echo $message;
}
print_dots($long_text);
答案 3 :(得分: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";