数据库 - 轨道更改文本字段



跟踪更改/添加文本字段的最佳方法是什么?我在数据库中有一个特定记录的"评论"字段。我想做的是当用户在网站上查看记录时,他们的原始评论以纯文本出现。当主管进行更改/添加时,他们的评论将以粗体显示。这些评论可以在文本中的任何地方发生。例如:

原始:

这些是我的评论。他们很棒!

主管评论后:

这些是我的不太好注释。他们很棒!我不同意。

使用MySQL和PHP,如果很重要。

您可以尝试以下代码:

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功能是否效果更好。

如果您正在寻找灵活的解决方案,则可以参考以下帖子,并具有标记的答案:

突出显示PHP

中两个字符串之间的差异

最新更新