一种合并两个字符串之间差异的方法


A Way To Merge Differences Between Two Strings?

我创建了一个wordpress插件,它会根据某些条件自动将<!--more-->标记添加到你的帖子中,但会智能地将此标记放置在你的帖子内。问题是,我还没有想出一个正确的方法来对抗HTML代码。目前,我让它检查是否有<,如果有,它会在帖子中找到下一个>

我希望在这里做的是从等式中完全删除html。我想知道是否有任何系统,比如git for PHP,我可以保存字符串的HTML代码版本,然后将HTML剥离并将代码的明文版本存储在另一个变量中,将<!--more-->标记放入代码的明文版中,然后比较这两个版本,将HTML代码正确地合并回明文中。

我试过谷歌,我做了大约100个小时的代码更改,但我仍然没有找到解决方案。所以现在我向云的力量鞠躬。这里有人能想出解决方案吗?

我对您想要实现的内容只有一个非常粗略的想法,所以这里有一个非常粗糙的方法。

你可以用一种"随时"的方法来完成这项工作,而不是把纯文本分开,然后在上面进行所有的计算。

对帖子中的所有字符运行循环。如果你找到了一个<,忽略("continue")接下来的任何内容,直到你找到了>,所以,基本上你在循环中得到了纯文本,你可以在这个循环中进行所有的初始计数(字符总数、单词数等)-再次运行这个循环,并根据初始计数向内容添加更多的标签,跳出第二个循环。

下面写的是另一个想法,它要复杂得多,假设你不能不得到纯文本。

让M是包含整个帖子内容的主字符串。每次你找到一个<tag>,把它推到一个数组中,记住这个标签在M中的位置,把它推进另一个数组。

一旦您将M中的所有标签连同标签的位置一起推送到一个数组中,剩下的就是纯文本。完成后,根据位置将数组中的所有标记弹回到纯文本中。当然,这需要很多改进,但这只是一个可以开发的想法。