String replace Strings

Subwoover

Erfahrenes Mitglied
Wie kann ich denn zB einen String durch einen String ersetzen?

Wie ich Zeichen wie ":)" und so in Smiles ersetze weiss ich :)

Nur ich hätte gerne zum Beispiel das wort "hure" gesperrt und durch "****" ersetzt, also 4 Sterne (immer 4)
Was gibt es denn da für Möglichkeiten?
 
tja, ich würde sagen, genau die gleichen ;)
kann man natürlich noch verbessern, indem man das in ne db einträgt oder so .. musst n bissl kreativ sein :P

mfg
 
hab kurz was geschrieben....das array kann beliebig viele wörter aufnehmen...

$string = "wichser und hure";

$array[0] = "hure";
$array[1] = "wichser";

for ($i = 0;$i <= count($array);$i++)
{
$string = str_replace($array,"****",$string);
}

//AUSGABE: **** und ****
 
@Bluebird: Ich konnt's nicht lassen und hab zwei Features hinzugefügt, einen Bug ausgebessert und das ganze etwas umgeschrieben ;)
PHP:
<?
$string = "Wichser und Hure";

$badwords[] = "hure";
$badwords[] = "wichser";

 // ob foreach oder for ist Geschmackssache, ich bevorzuge diese Variante:
foreach($badwords as $badword)
/* preg_replace anstatt str_replace, um Groß- und Kleinschreibung außer Acht zu lassen
   str_repeat anstatt fester Zeichenkette, damit je nach 'bad word' die entsprechende Anzahl
   an Sternen erscheint */
	$string = preg_replace("=".$badword."=i", str_repeat("*", strlen($badword)), $string);

echo $string;
?>
Die Grundidee ist aber nach wie vor von dir :)


reima
 
4 sternchen?

ich hab gedacht er will IMMER 4, nicht genausoviele * wie zeichen drinn sind :)

aber egal, ich kann eh nicht lesen :-)

greets daIllu ;-)
 
JO wollte eigentlich immer 4 Sterne für ein Wort, maybe nachher die Funktion dazu dass er mr genausoviele Sterne wie Zeichen macht :)

Ich hab mal das probiert:
PHP:
$showrow->bericht = str_replace("www", "http://www">", $showrow->bericht);

??
Und kann ich auf die selbe weise nun auch ein Badword ersetzen? er tut das auf DIE weise nämlich nicht :(
 
hm?

also ich weiss nit die methode von den oben hören sich ja ganz gut an, aber wie wärs du probierstes einfach mit nem normalen str_replace (so wie dus auch in deinem beispiel geschrieben hast)

PHP:
$bericht = str_replace("böses_wort","****",$bericht);

das musst du dann halt mit jedem badwort machen. ansonsten liste deine badwords in ner datenbank und pack die replaces in ne schleife.

und zu deiner letzten frage: ja lieg daran das die sache in klammern steht. str_replace erkennt nur strings die zwischen 2 leerzeichen stehen.

korrigiert mich wenn ich was net gerafft hab %)
 
UNd welcher Befehl ignoriert Leerzeichen? also ersetzt zB in dem wort das wort "rad"
fahrradsitz
??

Und wie lese ich das dann aus der DB aus? einfach while schleife und echo "showword->badword";
??
 
PHP:
<?PHP
<?PHP
$vari = "Ich wusste schon immer das sie eine Hure ist.";
$array_1 = array("Hure");
$array_2 = array("*****");
$vari = str_replace($array_1[$x],$array_2[$x],$vari);
echo $vari;
?>
 

Neue Beiträge

Zurück