我正在使用谷歌翻译 API。我正在发送 html 字符串。翻译工作正常,但标签被弄乱了。
例如:
<b>Hello World</b>
变成
<b>Hello World</ b>
有时标签返回如下:
<b>Hello World< / b >
我在 PHP 中的努力(不起作用)
preg_replace('~<(\s*)/(.*)(\s*)>~is', '</$2>', $string);
我正在使用谷歌翻译 API。我正在发送 html 字符串。翻译工作正常,但标签被弄乱了。
例如:
<b>Hello World</b>
变成
<b>Hello World</ b>
有时标签返回如下:
<b>Hello World< / b >
我在 PHP 中的努力(不起作用)
preg_replace('~<(\s*)/(.*)(\s*)>~is', '</$2>', $string);
你可以使用:
$string = preg_replace(',<\s*/\s*(\w+)\s*>,s', '</$1>', $string);
请注意,正则表达式将解决这个确切的问题。但只能防止标签中的空格。不会保护您免受进一步的 HTML 问题的影响。
到目前为止,这只会起作用,但您可以尝试使用 HTML 解析器,例如Simple HTML DOM,它对无效 HTML 进行了一些处理。然后你可以从库中清理出 HTML。