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

时间:2012-01-22 01:41:28

标签: php wordpress html-parsing string-parsing

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

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

我已经尝试过Google,我已经完成了大约100个小时的代码更改,而且我还没有找到解决方案。所以现在我屈服于云的力量。这里有没有人可以提出解决方案?

1 个答案:

答案 0 :(得分:2)

我对你要实施的内容只有一个非常粗略的想法,所以这是一种非常粗略的方法。

不是单独使用纯文本然后对其进行所有计算,而是可以在“on the go”方法中执行此操作。

对帖子中的所有字符运行循环。如果你发现<忽略(“继续”)接下来发现>,那么基本上你得到了循环中的纯文本,你可以在这个循环内完成所有初始计数(字符总数,字数等等。) - 再次运行此循环,并根据初始计数向内容添加更多标记,突破第二个循环。

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

让M成为包含整个帖子内容的主要字符串。每次找到<tag>时,将其推入数组,记住M中此标记的位置,将其推入另一个数组。

将M中的所有标记与标记的位置一起推入数组后,剩下的就是纯文本。完成后,根据位置将数组中的所有标记弹回到纯文本。这个过程需要很多改进,但它只是一个你可以开发的想法。