【发布时间】:2019-05-17 05:55:45
【问题描述】:
我正在使用 API 来翻译我的博客,但它有时会弄乱我的 html,从而让我有更多的工作来解决所有问题。
我现在要做的是从 html 中提取内容,翻译并放回原来的位置。
我首先尝试使用 preg_replace 来执行此操作,其中我会将每个标签替换为 ##a_number## 之类的内容,然后在文本翻译后恢复为原始标签。不幸的是,这很难管理,因为我需要用唯一的值替换每个标签。
然后我用“simple 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。
您有没有更好的选择来实现这一目标?
谢谢 洛朗
【问题讨论】:
标签: php html-parsing text-parsing