Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_Count - Fatal编程技术网

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));