0
PHPで大きな文字列を小さな文字列に解析しようとしています。私は各部分の\n
で終わる文字列を持っています。 2回目の文章を\n
から5番目の\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
}
目的は別の配列を作成せずに最初の$バッファ自体から部分文字列を取ることです。
ブロブをループするためにジェネレータを使用し、必要なラインのみを生成する必要があります。 forループを使うよりも大きな利点があります。 – Xorifelse
これは良い答えに見えましたが、残念ながら私はPHP V 5.3を使用していますが、アップグレードできません: – MuhammadNe
ジェネレータを使用しないと、ストリームを使って文字列(またはファイル)を1行ずつ読み込むことができます。 –