您好我正在PHP中使用这个函数来创建一些旋转内容(使用spintax)。但是,如果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
谁能劝这可能是为什么? 另外,您是否可以看到可以改进此代码效率的任何区域,以加快旋转过程并减少内存使用量?
DOLAR标志是变量的一部分,如果你想保持它的输出,你可以使用单引号'或$符号\ $ – Richard