こんにちは、PHP でこの関数を使用して、スピンされたコンテンツを作成しています (spintax を使用)。ただし、スピンタックスに $ (ドル記号) が含まれている場合、それらは出力から削除されます。
function spintext($s){
preg_match('#\{(.+?)\}#is',$s,$m);
if(empty($m)) return $s;
$t = $m[1];
if(strpos($t,'{')!==false){
$t = substr($t, strrpos($t,'{') + 1);
}
$parts = explode("|", $t);
$s = preg_replace("+\{".preg_quote($t)."\}+is", $parts[array_rand($parts)], $s, 1);
return spintext($s);
}
$out = spintext("Spinning a dollar sign: {$200|$400|$300}");
echo $out;
結果:
Spinning a dollar sign: 0
これがなぜなのか誰にもアドバイスできますか?また、スピン プロセスを高速化し、メモリ使用量を削減するために、このコードの効率を改善できる領域はありますか?