Avatar billede henninghabor Nybegynder
13. oktober 2006 - 10:42 Der er 11 kommentarer og
1 løsning

Findes ordet i array

Hej,

Jeg kan ikke forstå at nedenstående hele tiden gør teksten rød, når nu ordet findes i array'et dictionary:

            if(in_array(strtolower($word), $dictionary) == FALSE)
            {
                $page = preg_replace("/\b(" . $word . ")\b/i", "<span style=\"color: #F00;\">\\1</span>", $page);
            }

$word kan f. eks. være fisk, men fisk er i array'et dictionary. Hvordan kan jeg ellers gøre?
Avatar billede fire-fox Nybegynder
13. oktober 2006 - 10:50 #1
har du overvejet at ændre:
<span style=\"color: #F00;\">\\1</span>

til:
<span style=\"color: #000000;\">\\1</span>

For den kode du har nu #F00 er RØD
og #000000 er SORT :)

håber det hjælper
Avatar billede hmm10 Nybegynder
13. oktober 2006 - 10:53 #2
if (in_array(strtolower($word), $dictionary, true)) {
    $page = preg_replace("/\b(" . $word . ")\b/i", "<span style=\"color: #F00;\">\\1</span>", $page);
}

(utestet) Taget fra; http://dk2.php.net/in_array
Avatar billede hmm10 Nybegynder
13. oktober 2006 - 10:57 #3
hmm, glem min kommentar
Avatar billede henninghabor Nybegynder
13. oktober 2006 - 11:22 #4
fire-fox>>Det er jo meningen at ordet skal blive rødt, hvis det IKKE findes i $dictionary. Så derfor har jeg sat den til rød. :)

hmm10>>Det har jeg så gjort. :)
Avatar billede plx Nybegynder
13. oktober 2006 - 11:25 #5
du skal nok komme med noget mere
den kode du har vist fejler nemlig ikke noget
Avatar billede jaw Nybegynder
13. oktober 2006 - 11:26 #6
prøv:
if(!in_array(strtolower($word), $dictionary) {
Avatar billede nizo Nybegynder
13. oktober 2006 - 14:48 #7
prøv at tilføj en ekstra = når du tjekker om det er false.

Således der står

if(in_array(strtolower($word), $dictionary) === FALSE)

Boolean skal tjekkes med tre ==='er ;)
Avatar billede henninghabor Nybegynder
13. oktober 2006 - 23:11 #8
plx>>Her er hele koden:

$url = $_POST["url"];

$page = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", strip_tags(file_get_contents($url)));

$wordsTemp = preg_split("/[\s,]+/", $page);

$words = array_unique($wordsTemp);

echo "<p>" . sizeof($words) . " ord blev kontrolleret.</p>\n";

for($x = 0; $x < sizeof($words); $x++)
{
    if(!empty($words["$x"]))
    {
        $word = preg_quote($words["$x"], "/");
        $word = str_replace("&aelig;", "æ", $word);
        $word = str_replace("&oslash;", "ø", $word);
        $word = str_replace("&aring;", "å", $word);
        $word = str_replace("&AElig;", "Æ", $word);
        $word = str_replace("&Oslash;", "Ø", $word);
        $word = str_replace("&Aring;", "Å", $word);

        $first = strtolower(substr($word, 0, 1));

        if(preg_match("/^[a-zæøå]/", $first))
        {
            $dictionary = file("dictionary_" . $first . ".txt");

            if(!in_array(strtolower($word), $dictionary))
            {
                $page = preg_replace("/\b(" . $word . ")\b/i", "<span style=\"color: #F00;\">\\1</span>", $page);
            }
        }
    }
}

echo nl2br($page);
Avatar billede henninghabor Nybegynder
13. oktober 2006 - 23:11 #9
jaw>>Den hjalp desværre ikke.

nizo>>Den hjalp desværre ikke.
Avatar billede henninghabor Nybegynder
13. oktober 2006 - 23:23 #10
Nå, jeg prøvede en helt anden løsning og det ser ud til at virke:

        if(preg_match("/^[a-zæøå]/", $first))
        {
            $dictionary = file_get_contents("dictionary_" . $first . ".txt");

            if(!preg_match("/\b(" . $word . ")\b/i", $dictionary))
            {
                $page = preg_replace("/\b(" . $word . ")\b/i", "<span style=\"color: #F00;\">\\1</span>", $page);
            }
        }
Avatar billede henninghabor Nybegynder
18. oktober 2006 - 00:13 #11
Nogle af jer der vil ha' points?
Avatar billede henninghabor Nybegynder
27. oktober 2006 - 23:37 #12
Så snupper jeg dem da bare selv! :)
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