ugrás a tartalomhoz

automoderátor

lomajpurre · 2007. Dec. 29. (Szo), 14.26
Sziasztok!
Nekem a következő kérdésem lenn:
ha van egy adatbázisom, ami tartalmaz egy text táblám, ami értelem szerűen szöveget tartalmaz.

Az oldalamon így jelenítem meg:

print("<tr><td><font color=gray>|<font color=#e7e7e7>".format_comment($arr["text"])."</font>
</td></tr>\n");
És azt szeretném hogy ha talál benne xy szót, amit én előre definiálok, akkor kicserélje betűnként egy *-ra.
str_replace-re gondoltam, de hogy?
Kösz!
 
1

str_replace

lomajpurre · 2007. Dec. 29. (Szo), 15.10
Idő közben megoldottam:

$szoveg=str_replace(array("xy","yx"), array("***moderálva***","***moderálva***"), $arr["text"]);
Már csak az lenne a kérdésem hogy meg lehet azt oldani, hogy az első arry-nél megadott szavak mind egy szóra mutassanak, ne kelljen mindegyikhez hozzárendelni a ***moderálva***-t?
2

Stringet használsz

Qkac · 2007. Dec. 29. (Szo), 15.48
Hali! Egyszerűen stringet használsz a tömb helyett:

$szoveg = "Nagy dög vagy!";
$keres = array ("a", "g");
$string = "**";
$cserelt = str_replace($keres, $string, $szoveg);
print $cserelt;
3

str_replace

Drawain · 2007. Dec. 29. (Szo), 15.50
Például
$szoveg=str_replace(array("xy","yx"), "***moderálva***", $arr["text"]);
?
4

mindkettő

lomajpurre · 2007. Dec. 29. (Szo), 16.20
Kösz, mindkettő működik. utóbbit használom:)
5

azért nem tökéletes ez...

Thom · 2007. Dec. 31. (H), 01.45
Nekem pl. épp a minap vette zokon egy látogató, hogy nem tudja leírni a lakóhelye nevét - Szarvason lakik ugyanis, ***vas lett belőle ;) Röpke néhány nap alatt beesett 4-5 ilyen és nem győztem magarázni a chat-en, miért van. Aztán egyszerűen kikapcsoltam, egyelőre nem tudok jobbat.
Egyébként én is egy tömbbe gyűjtőttem a csúnya szavakat, aztán abból szűrtem a bejövő stringet. Egyszerű, nem nem annyira nagyszerű megoldás :(
6

pl. preg_replace?

amonrpg · 2008. Jan. 1. (K), 13.07
Erre való a regex, lehet benne vizsgálni a szóhatárt is. Meg még sokminden mást is.
http://hu.php.net/manual/en/reference.pcre.pattern.syntax.php