Ich habe die folgende ZeichenfolgePHP: String-Manipulation wählen zufällig
Make me {cum|cumm}.... mmmm {Phones|Phone's} {gonna|going to|going}
Es gibt einige Rollen.
Der Text in geschweiften Klammern hat eine Pipe Zeichen "|". bedeutet, einer von zwei Werten.
Wenn wir {Phone | Phone's} wählen, möchte ich eines von ihnen zufällig auswählen und es kann mehr als zwei oder drei Werte oder sogar einen einzelnen Wert in geschweiften Klammern haben.
So die obige Zeichenfolge kann eine der folgenden führen
Make me cumm .... mmmm Phones gehen
Make me cumm .... mmmm Phone zu
gehen Make me
cum .... mmmm Phones gehen
Make me cumm .... mmmm Telefon geht zu
aktualisieren
I hatte eine längere Lösung
preg_match_all("~\{(.*?)\}~",$string,$matches);
foreach($matches[1] as $match) {
$options = explode("|", $match);
if(count($options) > 0) {
$key = array_rand($options);
$randomValue = $options[$key];
$string = str_replace("{".$match."}", $randomValue, $string);
}
}
return $string;