Avatar billede henriktha Nybegynder
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 ???
Avatar billede avminarm Juniormester
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
Avatar billede henriktha Nybegynder
01. oktober 2003 - 14:13 #2
Jamen hvordan sætter man det så ind i denne kommando fil ???...
Avatar billede henriktha Nybegynder
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)
Avatar billede detox Nybegynder
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);
}
Avatar billede detox Nybegynder
01. oktober 2003 - 14:21 #5
str_ireplace() virker desværre først fra ver. 5.0.
Avatar billede avminarm Juniormester
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()
Avatar billede avminarm Juniormester
01. oktober 2003 - 14:28 #7
kig evt. under bruger kommentarer på php.net under den dfunktion detox snakker om: http://dk.php.net/manual/en/function.str-ireplace.php
Avatar billede detox Nybegynder
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');
?>
Avatar billede henriktha Nybegynder
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 ????
Avatar billede detox Nybegynder
01. oktober 2003 - 14:45 #10
Ok c",)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester