Charter
11-16-2003, 09:35 AM
Hi. The version 1.6.3 highlight fix to fix the version 1.6.2 highlight problem with exact words has a bug.
The bug is that with version 1.6.3, if you search on say 'php' using words begin or any words part, you will see something like 'blah blah phpdigHighlight">php' in the search results.
To fix this in version 1.6.3 do the following.
In robot_functions.php find:
//replace any group of blank characters by an unique space
$text = ereg_replace("[[:blank:]]+"," ",eregi_replace("<[^>]*>","",$text));
and right after add:
//strip characters used in highlighting
$text = str_replace("^#_","",str_replace("_#^","",$text));
In phpdig_functions.php replace the phpdigHighlight function with the following:
function phpdigHighlight($ereg='',$string='')
{
if ($ereg) {
// return @eregi_replace($ereg,"\\\\1<span class=\"phpdigHighlight\">\\\\2</span>\\\\3",$string);
$string = @eregi_replace($ereg,"\\\\1<^#_>\\\\2</_#^>\\\\3",@eregi_replace($ereg,"\\\\1<^#_>\\\\2</_#^>\\\\3",$string));
$string = str_replace("^#_","span class=\"phpdigHighlight\"",str_replace("_#^","span",$string));
return $string;
}
else {
return $result;
}
}
In search_function.php there are four places where the following occurs:
phpdigHighlight($reg_strings,phpdigHighlight($reg_strings,
In these four places, remove the following from each line:
// the first instance of phpdigHighlight($reg_strings,
// and also one ending ) to match parentheses
Remember to remove any "word" wrapping in the above code.
EDIT: PhpDig version 1.6.4 includes this fix. See the Changelog (http://www.phpdig.net/info/changelog.txt) for more details.
The bug is that with version 1.6.3, if you search on say 'php' using words begin or any words part, you will see something like 'blah blah phpdigHighlight">php' in the search results.
To fix this in version 1.6.3 do the following.
In robot_functions.php find:
//replace any group of blank characters by an unique space
$text = ereg_replace("[[:blank:]]+"," ",eregi_replace("<[^>]*>","",$text));
and right after add:
//strip characters used in highlighting
$text = str_replace("^#_","",str_replace("_#^","",$text));
In phpdig_functions.php replace the phpdigHighlight function with the following:
function phpdigHighlight($ereg='',$string='')
{
if ($ereg) {
// return @eregi_replace($ereg,"\\\\1<span class=\"phpdigHighlight\">\\\\2</span>\\\\3",$string);
$string = @eregi_replace($ereg,"\\\\1<^#_>\\\\2</_#^>\\\\3",@eregi_replace($ereg,"\\\\1<^#_>\\\\2</_#^>\\\\3",$string));
$string = str_replace("^#_","span class=\"phpdigHighlight\"",str_replace("_#^","span",$string));
return $string;
}
else {
return $result;
}
}
In search_function.php there are four places where the following occurs:
phpdigHighlight($reg_strings,phpdigHighlight($reg_strings,
In these four places, remove the following from each line:
// the first instance of phpdigHighlight($reg_strings,
// and also one ending ) to match parentheses
Remember to remove any "word" wrapping in the above code.
EDIT: PhpDig version 1.6.4 includes this fix. See the Changelog (http://www.phpdig.net/info/changelog.txt) for more details.