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中是标准的,而不是行数,这是一个原因。我只需创建另一个具有相同维度的文本区域并限制字符数。。。