2x das selbe Wort im String ist ok. 3x nicht. Wie umsetzen?
Helmuth
- php
Hallo liebe Leute,
ich habe da ein Problem. Ich habe folgende Strings.
$string1 = "Mist a Mist b Mist c";
$string2 = "Mist a Mist b Mist c Mist d Mist e";
$string3 = "Mist a Mist b";
$string4 = "Mist a";
Und so sollen die Ergebnisse aussehen:
Für String1: Mist a Mist b c
Für String2: Mist a Mist b c d e
Für String3: Mist a Mist b
Für String4: Mist a
Da es maximal 2x vorkommen darf funkt es leider auch nicht in ein array zu schreiben und per array_unique alle doppelten herauszufiter.
Hat jemand ne Idee?
Hi!
Hat jemand ne Idee?
Du könntest nach dem Wort trennen, das Array der Teile aufschneiden und den ersten Teil (der die erlaubte Anzahl Vorkommen enthält) mit dem Wort selbst wieder zusammenzufügen während Du den hinteren Teil mit einem Leerstring zusammenfügst, z.B. so:
function zu_haeufiges_wort_ersetzen ($wort, $text, $vorkommen) {
$text = explode ($wort, $text);
$s1 = array_slice ($text, 0, $vorkommen + 1);
$s2 = array_slice ($text, $vorkommen + 1);
return join ($wort, $s1) . join ('', $s2);
}
Viele Grüße,
Christian
$string2 = "Mist a Mist b Mist c Mist d Mist e";
// zwei gueltige Werte finden:
$pos_1 = strpos( $string2, 'Mist ' );
$pos_2 = strpos( $string2, 'Mist ', $pos_1 +1 );
if ... // wenn zwei gefunden
$string2[$pos_1] = 'X'; // Mist schuetzen
$string2[$pos_2] = 'X'; // Mist schuetzen
$string2 = str_replace( 'Mist ', '', $string2 ); // alle weiteren Mist incl. Leerstelle loeschen
$string2[$pos_1] = 'M'; // Mist wiederherstellen
$string2[$pos_2] = 'M'; // Mist wiederherstellen
Kalle
Hi,
Du willst also so schöne Sätze nicht wie z.B.:
Wenn hinter Fliegen Fliegen fliegen, fliegen Fliegen Fliegen hinterher.
;-)
cu,
Andreas