0
我想在PHP中將一個巨大的字符串解析爲較小的字符串。我有一個以\n
結尾的字符串。我想在第二個\n
之後得到這個句子,直到第五個\n
。如何獲得字符串到第n次出現的字符在PHP中?
我設法做到了這一點,但由於我處理的字符串很大,因此需要大量的時間。這是我使用的方法:
$arrayBuffer = explode("\n", $buffer);
for($i = 0; $i < $NumOfRequests; $i++) {
$tmpBuffer = "";
for($j = $i * $NumOfAllowedRows; $j < ($i + 1) * $NumOfAllowedRows; $j++) {
// stop the loop if it reached the last cell of arrayBuffer, to avoid Index Out Of Bound Exception
if($j === $arrayBuffer[count($arrayBuffer)]){
break;
}
$tmpBuffer = $tmpBuffer . $arrayBuffer[$j] . "\n";
}
// do something with the tmpBuffer
}
目的是從第一個$緩衝區本身取一個子串而不創建另一個數組。
您應該使用生成器來循環blob,只產生你想要的行。與使用for循環相比,它們有很大的優勢。 – Xorifelse
這似乎是一個很好的答案,但不幸的是我使用的是PHP 5.3。我不能升級它:(。 – MuhammadNe
沒有使用生成器,你可以逐行讀取你的字符串(或文件)使用流。 –