我正在处理一个字典类型的SQL表。一旦我完成了它,我就准备好了PHP脚本,用html超链接标记更新文本。剧本现在很好用。然而,一些字典条目是短语,包含几个单词,因此内容不会有与它们相关的适当链接。例如,如果我运行我目前拥有的脚本,它会分解整个定义,并将心脏病和发作分别联系起来。而我希望把"心脏病发作"这句话联系起来。
WORD:心肌梗死定义:心脏病发作
有什么建议吗
这是我目前的剧本。
$def = $original['def'];
$explode_string = explode(" ",$def);
$explode_count = count($explode_string);
$compare_count = 0;
if($explode_count>0)
{
while($compare_count<=$explode_count)
{
$sql="SELECT word
FROM dictionary
WHERE word='{$explode_string[$compare_count]}'";
$result=mysql_query($sql);
if(! $result )
{
die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($result);
if($row)
{
if($explode_string[$compare_count]!="{$original['word']}")
{
$replace="<a href='http://www.medicresource.com/medicaldictionary/search.php?word=".$explode_string[$compare_count]."'>{$explode_string[$compare_count]}</a>";
$def = str_replace($explode_string[$compare_count], $replace, $def);
}
}
++$compare_count;
}
}
$update_sql = "UPDATE dictionary SET def='$def' WHERE id='{$original['id']}'";
我认为更好的方法是使用foreach
$def = "Heart attack";
$explode_string = explode(" ",$def);
$explode_count = count($explode_string);
if($explode_count>0)
{
foreach($explode_string as $word)
{
$sql="SELECT word
FROM dictionary
WHERE word='" . $word . "'";
$result=mysql_query($sql);
if(! $result )
{
//die will kill the script
echo('Could not get data from query : ' . $sql . " error: " . mysql_error());
}
$row = mysql_fetch_array($result);
if($row)
{
$replace="<a href='http://www.medicresource.com/medicaldictionary/search.php?word=". $word ."'>" . $word ."</a>";
$def = str_replace($word, $replace, $def);
}
}
}
$update_sql = "UPDATE dictionary SET def='$def' WHERE id='" . $original['id'] . "'";