スピンされたテキストをphpページにきちんと出力する必要があります。{hi|hello|greetings} 形式のプレスパン テキストが既にあります。他の場所で見つけたphpコードがありますが、2つの{{が来る文レベルで紡がれたテキストを出力しません。修正が必要なコードは次のとおりです。
<?php
function spinText($text){
$test = preg_match_all("#\{(.*?)\}#", $text, $out);
if (!$test) return $text;
$toFind = Array();
$toReplace = Array();
foreach($out[0] AS $id => $match){
$choices = explode("|", $out[1][$id]);
$toFind[]=$match;
$toReplace[]=trim($choices[rand(0, count($choices)-1)]);
}
return str_replace($toFind, $toReplace, $text);
}
echo spinText("{Hello|Hi|Greetings}!");;
?>
出力はランダムに選択された単語になります: Hello OR Hi OR Greetings.
ただし、文レベルのスピンがあると、出力がめちゃくちゃになります。例えば:
{{hello|hi}.{how're|how are} you|{How's|How is} it going}
出力は
{hello.how're you|How is it going}
ご覧のとおり、テキストは完全に回転していません。
ありがとうございました