Lav ord til link script giver fejl
Hejsa,Jeg har lavet et script, og det er egentlig under testmode, så derfor er der nogle ting som kunne gøres bedre, men det problem jeg vil have løst er:
Scriptet henter ordene fra en database, hvor der er lavet en tabel der hedder "keywords", og det virker faktisk ret godt, og efter hensigten - nogenlunde.
For det er sådan at hvis jeg har en tekst hvor der står:
Jeg elsker Michael Jackson.
Og jeg i min tabel "keywords", har Michael Jackson inde, så vil den lave Michael Jackson om til et link, som føre til min artikel om "Michael Jackson". Men hvis jeg gerne vil linke til en anden side om Michael Jackson i min wysiwyg, så er det der går kage i den!
Så ser teksten således ud i min database:
Jeg elsker <a href="http://eb.dk/michael-jackson-er-doed">Michael Jackson</a>.
Hvilket er fint, men det der sker går man går ind i artiklen er følgende:
Jeg elsker <a href="http://eb.dk/michael-jackson-er-doed"><a href="http://mitdomæne.dk/min-artikel-omkring-michael-jackson">Michael Jackson</a></a>.
Hvilket vil sige at mit script ikke checker for om teksten allerede ér et link, og laver derfor et link, inde i et link.
Scriptet ser sådan her ud:
<?php
$result11 = mysql_query("SELECT * FROM keywords");
$result22 = mysql_query("SELECT * FROM keywords");
while($row11 = mysql_fetch_assoc($result11)){
$keyword1 = $row11['keyword1'];
$patterns[] = "/(?<!\.)\b$keyword1\b(?<!\.)/i";
}
while($row22 = mysql_fetch_assoc($result22)){
$keyword11 = $row22['keyword1'];
$keyword2 = $row22['keyword2'];
$replacements[] = "<a href='$keyword2' title='$keyword11'>$keyword11</a>";
}
$artiklen1 = preg_replace($patterns, $replacements, $artiklen, 1);
?>
Jeg ved ikke hvordan man bedst kan gøre det, men den skal checke for om teksten allerede ér et link... hmm..
200 points til den der kommer med en løsning hurtigst muligt :-)