跟踪文本字段更改/添加的最佳方法是什么?我有一个数据库中特定记录的“注释”字段。我想要做的是当用户在网站上查看记录时,他们的原始评论以纯文本显示。当主管随后进行更改/添加时,他们的注释将以粗体显示。这些评论可以在文本的任何地方发生。例如:
原件:
这些是我的评论。他们太棒了!
主管评论后:
这些是我的不那么好的评论。他们真棒! 我不同意。
使用MySQL和php,如果重要的话。
答案 0 :(得分:1)
您可以尝试以下代码:
function highlight_modified_string($actual_string, $modified_string) {
$str_array = explode(' ', $actual_string);
$str_edited_array = explode(' ', $modified_string);
$str_added = array_diff($str_edited_array, $str_array);
foreach($str_edited_array as &$str_edited_value) {
foreach($str_added as $str_added_value) {
if($str_added_value == $str_edited_value) {
$str_edited_value = '<span style="font-weight: bold">' . $str_edited_value . '</span>';
}
}
unset($str_edited_value);
}
return implode(' ', $str_edited_array);
}
$str = "These are my comments. They are awesome!";
$str_edited = "These are my not so great comments. They are awesome! I disagree.";
$str_modified = highlight_modified_string($str, $str_edited);
echo "<p>{$str}</p>";
echo "<p>{$str_modified}</p>";
我不确定这是否是您正在寻找的。但我尽我所能为你提供解决方案。
此外,此代码适用于您在问题中提供的测试用例。
但我确信这段代码对所有测试用例都不灵活。
无论如何,请尝试使用您自己的不同测试用例来检查highlight_modified_string
函数是否更有效。
如果您正在寻找灵活的解决方案,可以参考以下帖子并标明答案: