Php 如何计算一个非常大的字符串中的新行数?
问题归结为计数Php 如何计算一个非常大的字符串中的新行数?,php,string,count,Php,String,Count,问题归结为计数\n字符,因此有没有一个函数可以对大量字符串执行此操作,因为explode()会浪费太多内存。应该做到以下几点: substr_count( $your_string, "\n" ); 您可以使用PHP的substr\u count()函数: substr\u计数($myString,“\n”) 它将为您提供一个包含出现次数的整数。我认为substr\u count($your\u string,“\n”);应该是: $numLine = substr_count( $your_
\n
字符,因此有没有一个函数可以对大量字符串执行此操作,因为explode()会浪费太多内存。应该做到以下几点:
substr_count( $your_string, "\n" );
您可以使用PHP的
substr\u count()
函数:
substr\u计数($myString,“\n”)代码>
它将为您提供一个包含出现次数的整数。我认为substr\u count($your\u string,“\n”);应该是:
$numLine = substr_count( $your_string, "\n" ) +1;
但我用这个:
$numLine = count(explode("\n",$your_string));
它总是返回正确的结果关于使用PHP\u EOL的想法?我一直在使用常量,并且很好奇是否可以像您所概述的那样使用\n。谢谢你的想法@BobGregor这个问题专门询问一种查找“\n”的方法,但是如果您正在寻找一种以跨平台方式查找行尾字符串的方法,那么使用PHP\u EOL肯定没有什么错。请注意,需要在\n
周围加上双引号:substr\u count($your\u string,“\n”)
可以工作,而substr\u count($your\u string,'\n');
不能工作。您可能会发现,如中所示,这可能会有所帮助。这有两件事:首先,它将所有类型的换行符(LF、CR、CRLF和Unicode换行符)规范化为LF。然后以多字节安全的方式对LF进行计数。
$numLine = count(explode("\n",$your_string));