我需要计算一行中等号的数量。这样做的最佳方式是什么?文本文件也很大,所以如果可能的话,我首先要查看是否在行中是否有等号,然后对它们进行计数(如果这样会更快)。我不需要知道如何遍历这些行(我已经知道这部分)。此外,如果有一种方法可以做到这一点,如果它达到一定数量(例如,如果行中超过5个相同的符号)将自动停止(如果这加快了速度)。
此致
答案 0 :(得分:5)
使用substr_count。它返回一行中子字符串出现次数。
例如:
$count = substr_count( $line, '=' );
答案 1 :(得分:1)
至于计算出现次数,只需使用substr_count()
。
假设您知道如何缓冲输入文件(而不是尝试将其全部加载到内存中),您几乎必须从头开始执行正确的行计数以过滤到特定范围的行数字或只是识别行号。毕竟行是可变长度。
答案 2 :(得分:0)
这为每一行使用preg_match_all()。那是你在找什么?
$fil = file("listcontent.php");
foreach ( $fil as $line ) {
$matches = array();
$count = preg_match_all("/(=[^=]*)/",$line,$matches);
if ( $count ) echo $count.": ".$line;
}