3

prey_split を使用して文字列を配列に分割する PHP スクリプトがあります。preg_split コードは次のとおりです。

preg_split("~(?<!\*):~", $val);

これは基本的に、前にアスタリスクを付けずに、コロンがある場所で文字列を分割します。例:"h*:el:lo"に変わりますarray("h*:el", "lo")

大量の文字列を分割する場合、このプロセスはリソースを大量に消費し、処理が遅くなります。これを達成するためのより速い方法はありますか?

4

2 に答える 2

1

次のようなことを試すことができます:

$string = "h*:el:lo";
$string = str_replace("*:", "#", $string);
$array = explode(":", $string);

速度がどうなるかはわかりませんが、文字列から *: ビットを削除すると、爆発するのは簡単です。必要に応じて、操作後に *: を元に戻すことができます。

于 2013-03-19T11:54:36.540 に答える
0

を使用する必要がありますpreg_split()か? 使いやすいのでpreg_match_all()

preg_match_all('/(?:^|:)([^*:]+(?:\*.[^*:]+)*)/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];
于 2013-03-19T12:54:29.873 に答える