0

基本上,我正在寻找的结果是维基百科如何拥有带有链接的文本,尽管有其他维基百科页面的文本。我有一个充满定义的数据库,我有一个充满文本的段落,我想用空格来分解,检查一个 sql 表是否存在所有单词并用链接替换确实存在的那些。请帮忙。到目前为止我所拥有的是这个(但它似乎不起作用):

$def = $row['def'];(This is just the paragraph)
$checks = explode(' ', $def);

foreach($checks as $key => $check) {
$sql = mysql_query("SELECT * FROM words WHERE word = '$check'");
while($row = mysql_fetch_array($sql, MYSQLI_ASSOC)) {
$find = $row['word'];
$new = "text";

$final = str_replace($find, $new, $checks);

print_r($final);
4

1 回答 1

0

我将在这里冒险,但我认为您可能会遭受使用 foreach 的其中一个怪癖,即$checks您在内部替换的内容foreach$checks外部不同。

尝试这个。

$def = $row['def']; //This is just the paragraph
$checks = explode(' ', $def);

for ($i=0; $i<count($checks); $i++) 
{
    $sql = mysql_query("SELECT * FROM words WHERE word = '{$checks[$i]}'");
    while($row = mysql_fetch_array($sql, MYSQLI_ASSOC)) 
    {
        //$checks[$i] = "text"; //according to your original example
        $checks[$i] = "<a href=\"{$row['url']}\">{$row['word']}</a>"; //something like this, assuming you have a column 'url' in the DB with the link you want to refer to
    }
}

$final = implode(' ', $checks);

print_r($final);

并不是说这非常有效,但我认为它应该有效。

于 2013-04-08T07:57:54.000 回答