当使用'preg_replace_callback'时显示从Textarea的新行段落

问题描述:

好吧,所以我有段落显示罚款时拉出数据库。 使用CSS,我有行...当使用'preg_replace_callback'时显示从Textarea的新行段落

white-space: pre-line; 

新线各段均显示很大。

但后来我添加了一些代码,使每个句子的首字母大写。 代码是...

$description = htmlentities(strip_tags($_POST['desc']), ENT_QUOTES); 
$desc = preg_replace_callback('/([.!?])\s*(\w)/', function ($matches) { 
    return strtoupper($matches[1] . ' ' . $matches[2]); 
}, ucfirst(strtolower($description))); 

所以,虽然它的工作,现在不会呈现新段新线。换句话说,它忽略了上面的CSS行或其他东西。

任何想法??

它不会忽略CSS,不再有新行。

见你匹配你想要什么,其实你是不更换新行字符的第一([.!?])和第二(\w)组表达。

变化表达为 '/([.!?])(\s*)(\w)/',那么return语句strtoupper($matches[1] . $matches[2] . $matches[3])

它应该工作。