我正在使用 API 来翻译我的博客,但它有时会弄乱我的 html,从而让我有更多的工作来解决所有问题。
我现在要做的是从 html 中提取内容,将其翻译并放回原处。
我首先尝试使用 preg_replace 来执行此操作,其中我会将每个标签替换为 ##a_number## 之类的内容,然后在翻译文本后恢复为原始标签。不幸的是,这很难管理,因为我需要用一个唯一的值替换每个标签。
然后我用“简单的html dom”尝试了它,可以在这里找到: http ://simplehtmldom.sourceforge.net/manual.htm
$html = str_get_html($content);
$str = $html;
$ret = $html->find('div');
foreach ($ret as $key=>$value)
{
echo $value;
}
这样我得到了所有文本,但值中仍然有一些 html(div 内的 div),我不知道如何将翻译后的文本放回原始对象中。这个对象的结构非常复杂,以至于在显示它时,它会使我的浏览器崩溃。
我的选项有点用完了,可能有更直接的方法可以做到这一点。我想找到一种方法来获取一个对象或数组,其中一侧包含所有 html,另一侧包含所有文本。我会遍历文本以翻译它并合并所有内容以避免破坏 html。
您是否看到更好的选择来实现这一目标?
谢谢洛朗