01. oktober 2003 - 13:58
Der er
9 kommentarer og 1 løsning
Kan man lave array på eregi_replace ?
Kan man lave en array på eregi_replace så der er flere muligheder for udskiftning i den samme.... F.eks: <? function checkwords ($String, $TestOnly) { $BadWords = array ("Fuck","Dick","Ass"); $ReplaceString = "@#$*!"; $Found = false; for (reset($BadWords); $ToFind =current $BadWords); next($BadWords)) { $Found = eregi(addslashes($ToFind), $String); if ($Found) { if ($TestOnly) { break; } else { $String = eregi_replace(addslashes($ToFind), $ReplaceString, $String); }; }; }; unset($BadWords); return ($TestOnly ? $Found : $String); } ?> Kan ovenstående ændres så der er et erstatnings ord for hver enkelt badword der er i strengen ???
Annonceindlæg fra gavdi
01. oktober 2003 - 14:12
#1
Hvad med et array der hedder: $BadWords = array ("Fuck" => "fok","Dick" => "drengenavn" ,"Ass" => "numse"); og så bruge array_key_exists(); eller noget i den stil
01. oktober 2003 - 14:13
#2
Jamen hvordan sætter man det så ind i denne kommando fil ???...
01. oktober 2003 - 14:15
#3
......... kan man ikke lave så det ord der skal erstattes hentes fra 1 arry og erstatnings ordet fra en anden (Så har jeg jo mulighed for at hente ordene fra en database)
01. oktober 2003 - 14:20
#4
Måske i den her stil: function checkwords ($String) { $BadWords = array ("Fuck","Dick","Ass"); $GoodWords = array ("Hmmm","Tjah","Av"); $String = str_replace($BadWords,$GoodWords,$String); unset($BadWords); return ($String); }
01. oktober 2003 - 14:21
#5
str_ireplace() virker desværre først fra ver. 5.0.
01. oktober 2003 - 14:26
#6
du kan sagtens lægge dem i en database - der kan du jo hente et array ud direkte med mysql_fetch_array()
01. oktober 2003 - 14:36
#8
avminarm -> Ja, der er en workarround der. Jeg prøvede sådan her, den tager det meste: <? function checkwords ($String) { $BadWords = array ("Fuck","Dick","Ass"); foreach ($BadWords as $item) { array_push($BadWords,strtolower($item)); array_push($BadWords,strtoupper($item)); } $GoodWords = array ("Hmmm","Tjah","Av"); foreach ($GoodWords as $item) { array_push($GoodWords,strtolower($item)); array_push($GoodWords,strtoupper($item)); } $String = str_replace($BadWords,$GoodWords,$String); unset($BadWords); unset($GoodWords); return ($String); } echo checkwords('Fuck DICK ass'); ?>
01. oktober 2003 - 14:38
#9
detox >> Det virker fint.... tak for hjælpen !!!... men lav lige et svar så du kan få dine point ik ????
01. oktober 2003 - 14:45
#10
Ok c",)
Vi tilbyder markedets bedste kurser inden for webudvikling