如何使用substr但保持在textarea

时间:2016-09-03 17:01:29

标签: php html

所以我创建了一个帖子功能,但是当我想在首页上显示帖子时,它应该只显示前200个字母以及保留用户在textarea中所做的所有休息。 我正在做的是以下内容:

substr($row["content"], 0, 200);

这显示内容很好,但它会释放用户所做的所有休息。

3 个答案:

答案 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

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);