1

現在、PHP を含む 2 つのファイルがあります。

1 つのファイルがメイン スクリプト A.php を実行します。2 番目のファイル B.php には変数 $lines が含まれています。

A.php:

include("b.php");
$p = explode("\n", $lines);
$p = $p[rand(0, count($p)-1)];
$p = explode(":", $p);

B.php:

$lines= "data1:data2
data1:data2
data1:data2
data1:data2"; //(the actual variable contains 3,000 lines)

A.php は B.php をインクルードし、変数を展開し、使用するランダムな行を取得します。B.php が 3,000 行になり、83kb になり、A.php が遅くなるのではないかと心配しています。

これを回避するより効率的な方法はありますか?

4

1 に答える 1

0

これだけのデータがある場合は、データベース imo を使用するのが最善ですが、 SplFileObjectを使用して特定の行を読み取るだけで済み、php スクリプトの代わりに実際のデータファイルを使用できます (データを通常のテキスト ファイルに入れるだけです)。

$rndNum = 530; //Generate your random line number.
$file = new SplFileObject('b.txt');
$file->seek($rndNum); //put file cursor at line $rndNum+1
echo $file->current(); 
于 2013-07-28T09:04:11.570 に答える