Php 计算textarea中的行数,包括自动换行

Php 计算textarea中的行数,包括自动换行,php,html,forms,validation,textarea,Php,Html,Forms,Validation,Textarea,我有一个文本区 <textarea id="text" name="text" rows="6"></textarea> <style> #text { width: 30%; } </style> #文本{宽度:30%;} 提交表单时,我需要检查输入是否超过6行。我有一个JS代码,它检查scrollbar(scrollbar present=超过6行=无效输入),它工作得很好。棘手的部分是,在禁用JS的情况下,如何使用PHP验证输

我有一个文本区

<textarea id="text" name="text" rows="6"></textarea>

<style>
    #text { width: 30%; }
</style>

#文本{宽度:30%;}
提交表单时,我需要检查输入是否超过6行。我有一个JS代码,它检查scrollbar(scrollbar present=超过6行=无效输入),它工作得很好。棘手的部分是,在禁用JS的情况下,如何使用PHP验证输入

我试过这样的东西

public function overflowValidator($input, $maxLines, $cols) {
    $linebreakCount = substr_count($input, "\n");
    $overflow1 = ($linebreakCount <= $maxLines);
    $overflow2 = (ceil(strlen($input) / $cols) <= $maxLines);
    return $overflow1 && $overflow2;
}
公共函数溢出验证器($input、$maxLines、$cols){
$linebreakCount=substr\u count($input,“\n”);

$overflow1=($linebreakCount最好是计算字符总数,而不是行数,但下面的代码允许您这样做:

    preg_match_all("/(\n)/", $_POST['text'], $matches);
    $total_lines = count($matches[0]) + 1;

合计行数:-

$lines = preg_split('/\n|\r/',$str);
$Total_lines = count($lines); 
echo $Total_lines;

为什么不数一数字符串中的字符数呢?我看不出数一数行的目的…int strlen(string$string)当我以后在另一个页面上显示它时,容器必须与textarea的大小完全相同,所以在这两个页面中看起来都一样(我需要通过限制行数来限制它的大小).这就是为什么…尽管如此,计算行数以创建相同的文本区域对我来说没有多大意义。字符计数函数在PHP或Javascript中是标准的,而不是行数,这是一个原因。我只需创建另一个具有相同维度的文本区域并限制字符数。。。