0

こんにちは、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

これがなぜなのか誰にもアドバイスできますか?また、スピン プロセスを高速化し、メモリ使用量を削減するために、このコードの効率を改善できる領域はありますか?

4

1 に答える 1