スピン構文を使用して単語(事前定義済み)を段落に挿入できるようにする、自分のサイト用のphpスクリプトを作成しようとしています。1つのスクリプトで複数回実行する方法がわかりません。たとえば、次のような段落があります。
{太った|ずんぐりした|怠惰な}犬は一日中{眠る|休む|うんち}。
スクリプトが{text1| text 2}中括弧の間にあるテキストの各グループにアクセスできるようにしてから、使用する変数をランダムに選択しようとしています(パイプで区切られています)。それが行われると、次のような文字列の多くのバリエーションが吐き出されます。
- 太った犬は一日中眠ります。
- 怠惰な犬は一日中うんちをします。等。
{}角かっこで囲まれたテキストの最初のインスタンスにアクセスし、それを回転させることはできますが、1回の急降下で複数回実行する方法がわかりません。誰かがこれをしたことがありますか?
これは、最初の2つの{}括弧の間にあるテキストの最初のインスタンスにアクセスするためのスクリプトです。
function get_between ($text, $s1, $s2) {
$spinText = "";
$pos_s = strpos($text,$s1);
$pos_e = strpos($text,$s2);
for ( $i=$pos_s+strlen($s1) ; (( $i<($pos_e)) && $i < strlen($text)) ; $i++ ) {
$spinText .= $text[$i];
}
return $spinText;
}
$str = "The {fat|pudgy|lazy} dog {sleeps|rest|poops} all day long.";
$spinTextFinal = get_between($str,"{","}");
$spinTextFinalExplode = explode("|",$spinTextFinal);
print_r($spinTextFinalExplode);