Avatar billede Slettet bruger
11. august 2006 - 00:42 Der er 7 kommentarer og
1 løsning

Leksikons funktion

Hej eksperter.

Jeg har lavet en leksikons funktion men er nu bange for den ikke virker ordenligt alligevel.
Hvis ordet ost indgår i min tekst skal den replaces til <a href="#">ost</a>, men kun første gang den støder på ordet skal det være et link...
$text er al min tekst, og url parameteret er ikke begyndt at bruge det parameter endnu.)


Jeg bruger funktionen:

function lex($text, $url = null) {
    $query = query("SELECT lexID, word FROM lex");
    while ($r = mysql_fetch_array($query)) {
        $text = preg_replace("/".$r['word']."*\b/", "<a href=\"lexikon.php&amp;lexID=".$r['lexID']."\" class=\"lex_word\"><u>".$r['word']."</u></a>", $text, 1);
    }
    return $text;
}

Men fejlen lægger sikkert i den regular expression...?!
Avatar billede nielle Nybegynder
11. august 2006 - 08:37 #1
Du skal nok bruge dette pattern i stedet:

"/\b" . $r['word'] . "\b/i"
Avatar billede Slettet bruger
12. august 2006 - 12:36 #2
Super takker så virker det, lægger du lige et svar?
Avatar billede nielle Nybegynder
12. august 2006 - 22:41 #3
Svar :^)
Avatar billede Slettet bruger
31. august 2006 - 13:16 #4
Men nielle nu er jeg lige støt på et problem.
Jeg ved ikke om det er fordi mine ord i databasen alle starter med stort eller om det er den regular expression der gør det?!

Men kan man tjekke på om det er midt inde i en sætning eller i starten af sætningen sådan så ordet ikke lige pludselig starter med stort midt i en sætning, men samtidig er der nogen ord der er navne jo, som skal starte med stort (det er mindre vigtigt).
Avatar billede nielle Nybegynder
31. august 2006 - 13:20 #5
Sikkert sådan her:

$text = preg_replace("/\b(" . $r['word'] . ")\b/i", "<a href=\"lexikon.php&amp;lexID=".$r['lexID']."\" class=\"lex_word\"><u>\\1</u></a>", $text, 1);
Avatar billede Slettet bruger
31. august 2006 - 19:17 #6
Tester den lige når jeg har spist.
Avatar billede Slettet bruger
31. august 2006 - 21:09 #7
Lægger du lige et svar`?
Avatar billede Slettet bruger
31. august 2006 - 21:09 #8
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