所以我创建了一个帖子功能,但是当我想在首页上显示帖子时,它应该只显示前200个字母以及保留用户在textarea中所做的所有休息。 我正在做的是以下内容:
substr($row["content"], 0, 200);
这显示内容很好,但它会释放用户所做的所有休息。
答案 0 :(得分:1)
将newline
应用于break
函数到您的子字符串:
nl2br(substr($row["content"], 0, 200));
或者如果你想保存整个单词:
nl2br(mb_substr($row["content],0,200)); //this will not strip the word in the middle, so if it longer than 200 with the last word, it ends up before that word
答案 1 :(得分:0)
答案 2 :(得分:0)
PHP的行尾
正确的行结束' PHP的符号是PHP_EOL常量。您可以使用PHP_EOL常量以与跨标记兼容的方式替换换行符。
$row["content"] = str_replace(PHP_EOL,'<br>',$row["content"]);
Strip_tags将从字符串中删除所有HTML,XML和PHP标记。您可以将可选的第二个参数用作白名单。
保留BR标记
使用 strip_tags 将 br 和substr列入白名单:
substr(strip_tags($row["content"],'<br>'), 0, 200);
最终代码
让我们在一个代码块中组合替换和过滤步骤。
substr(strip_tags(str_replace(PHP_EOL,'<br>',$row["content"]),'<br>'), 0, 200);