如何裁剪适合块型标签的文本?

问题描述

| 在我的表单中,我要用户输入文本,然后在他们提交表单时将文本发送到我的数据库。当我查询输入的文本并将其插入到html页面中时,它不适合该容器,而是如果一行中有很多单词,它将输出该行的长度。我想知道如果假定读取的容器的大小太大,那么如何裁剪行。哦!扩展我的请求:处理用户输入并以完全相同的格式检索它的最佳方法是什么?     

解决方法

        如果您需要\“ crop \”文本,则只需使用substr。
echo substr($string,150);
这会将您的字符串最多减少150个字符 @OP:阅读完您的问题后。你是说css吗?
overflow: hidden;
无论如何,即使div设置为display:block;它不应该显示水平滚动条 附录 链接的问题是您的div的类为
listing
white-space: pre;
你应该改变它
white-space: normal;
    ,        这不是一个完美的解决方案,但是您可以这样做:
$string = \'yourstring\';

if (strlen($string) > TheMaxSizeOfYourString) {
    $string = substr($string,TheMaxSizeOfYourString-3);
    $string .= \'...\';
}
这并不完美,因为字符串的实际宽度随所使用的字体而异。     ,        不确定是什么问题。如果您指定文本输入的最大长度,那么您将始终具有设置​​的文本最大长度。否则,您可以执行substr($ yourstring,0,your_set_length)。但是,简单地设置maxlength更有意义。     ,        您可以使用以下文字将文字缩短为特定长度,然后将其“四舍五入”为最接近的完整单词,甚至在需要时添加一些尾随的“ ......” ...
function ShortenText($text,$chars) {
        // Change to the number of characters you want to display
        $orig = $text;
        $text = $text.\" \";
        $text = substr($text,$chars);
        $text = substr($text,strrpos($text,\' \'));

        // Add ... if the text actually needs shortening
        if (strlen($orig) > $chars) {
            $text = $text.\"...\";
        }
        return $text;

}
    ,        如果与格式相关的唯一问题是换行,那么我会这样: 用户在文本区域中输入一些文本。 我会清除所有要删除的行的文本(也可以删除选项卡或多个空格)。 将纯文本存储在数据库中。 当文本将被检索到时,您可以将其输出到html页面中,如果将其放在div中,则不必担心,因为文本会自行折断。 如果需要显示它的预览,请选择上面所示的substr。 结束语我不认为您要求以完全相同的格式获取文本是一个好主意(除了您的想法之外)。相反,您要清除用户插入的文本。希望我理解正确,您正在尝试做!