Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 统计已发布字符串中的行数_Php_Count_Lines - Fatal编程技术网

Php 统计已发布字符串中的行数

Php 统计已发布字符串中的行数,php,count,lines,Php,Count,Lines,我试过这个: 但它似乎不起作用: $content = nl2br($_POST['text']); preg_match_all("/(<br>)/", $content, $matches); echo count($matches[0]) + 1; $content=nl2br($_POST['text']); preg_match_all(“/()/”,$content,$matches); 回声计数($matches[0])+1; 它将始终输出1 是否有其他解决方案可

我试过这个:

但它似乎不起作用:

$content = nl2br($_POST['text']);
preg_match_all("/(<br>)/", $content, $matches);

echo count($matches[0]) + 1;
$content=nl2br($_POST['text']);
preg_match_all(“/(
)/”,$content,$matches); 回声计数($matches[0])+1;
它将始终输出
1


是否有其他解决方案可以计算字符串中的行数?

在我的一个旧应用程序中找到了此解决方案。。。不知道我从哪里弄来的

$lines_arr = preg_split('/\n|\r/',$str);
$num_newlines = count($lines_arr); 
echo $num_newlines;
*编辑-事实上,如果你的文本区域正在吐出html,这可能不起作用。。检查


您可以尝试以下方法:

$count = substr_count($_POST['text'], "\n") + 1;
或:


您是否检查了nl2br是否改为输出

?在firebug中,它显示

。输出$content,它可能将换行符转换为
firebug不显示实际标记,因此不要相信它。谢谢!它工作得很好。如果有人会寻找解决办法:我刚刚改变了你的注册。扩展到:
preg_split('/()/',$str)。没问题。您可能希望点击此答案旁边的绿色复选框,以便人们知道它已被回答。编辑答案以考虑\r\n和\n\r否则,这是一个极好的答案。我也需要这个。嘿,在正则表达式中有
\r
的原因吗?我不确定当文件很大(例如250 MB)时,这是否是最好的选择
$count = count(explode("\n", $_POST['text']));
count( explode(PHP_EOL, $str) );