我需要使用 PHP 组合不同结构的 XML 文件。我正在做的是;
- 使用读取第一个 XML 文件
simplexml_load_file()
- 使用
SimpleXMLElement()
类使用新结构重新格式化元素 - 对另一个文件执行相同操作,增加第一个
SimpleXMLElement()
实例 - 保存新组合的 XML 文件。
到目前为止,一切都很好。棘手的部分是,第一个文件大约有。3000 个条目,第二个文件有 5000 个。其中近 2000 个条目实际上是相同的;只是可能有几个字母不同。比如说;“Lenovo G50-70 CoreI5”,另一个可能是“Lenovo G5070 I5”。
问题是,如何将第一个文件的条目与第二个文件的相等条目匹配;所以实际上它恰好只是一个条目,在新的组合文件中?
我同时使用similar_text()
PHP 和 SmithWatermanGotoh 的函数来计算相似度,它的得分为 86%;这对我来说已经足够了。但是迭代另一个文件的所有条目以仅匹配一个条目对我来说是非常不明智和资源消耗的。Beucase 这意味着大约。每次我保存一个新的更新文件时,都会将 7MB 的文件加载到内存中,至少进行 15.000 次迭代。
我考虑将所有条目插入数据库表并使用 Sphinx Search 来匹配条目;但我不确定它是否真的有足够的帮助。