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?
Annonceindlæg fra GlobalConnect
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
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
13. oktober 2006 - 10:57
#3
hmm, glem min kommentar
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. :)
13. oktober 2006 - 11:25
#5
du skal nok komme med noget mere den kode du har vist fejler nemlig ikke noget
13. oktober 2006 - 11:26
#6
prøv: if(!in_array(strtolower($word), $dictionary) {
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 ;)
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("æ", "æ", $word); $word = str_replace("ø", "ø", $word); $word = str_replace("å", "å", $word); $word = str_replace("Æ", "Æ", $word); $word = str_replace("Ø", "Ø", $word); $word = str_replace("Å", "Å", $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);
13. oktober 2006 - 23:11
#9
jaw>>Den hjalp desværre ikke. nizo>>Den hjalp desværre ikke.
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); } }
18. oktober 2006 - 00:13
#11
Nogle af jer der vil ha' points?
27. oktober 2006 - 23:37
#12
Så snupper jeg dem da bare selv! :)
Vi tilbyder markedets bedste kurser inden for webudvikling