使用 php 从网站/html 页面获取所有可翻译的文本


Using php to get all translatable text from a website/html-page

我正在尝试设置一个翻译工具来翻译网站。我想做的是导入html-code并从该站点获取所有可翻译的文本。

一个想法是使用 strip_tags ,但它会忽略可以翻译的字符串,例如替代文本、标题文本以及我还没有想到的其他字符串。有没有一种干净的方法来做到这一点?

在这种情况下,您需要自己解析HTML并提取文本。您可能已经知道,使用正则表达式解析HTML是一个坏主意(tm)。因此,唯一正确的解决方案是解析文档的 DOM。在此步骤中,您可以自由使用任何工具,包括标准 DOMDocument 类。

如果您正在寻找一些库或脚本来提供帮助,我建议您查看可以用于商业用途的html2text。如我所见,它不支持<img>标签的属性,但很容易修复(以<a>标签为例)。

如果您正在寻找一些自动文本提取,那么您绝对应该查看像 Bolierpipe 这样的东西。

我个人会使用Symfony2的DOM Crowler组件,它是php DOM函数的一个很好的包装器,并从那里开始。