从HTML标记中删除空格

时间:2013-03-13 18:11:35

标签: php regex expression

我正在使用Google翻译API。我发送html字符串。翻译工作正常,但标签搞砸了。

例如:

<b>Hello World</b>

变为

<b>Hello World</ b>

有时会返回标签,如:

<b>Hello World< / b >

我在PHP上的努力(不起作用)

preg_replace('~<(\s*)/(.*)(\s*)>~is', '</$2>', $string);

3 个答案:

答案 0 :(得分:1)

您可以使用:

$string = preg_replace(',<\s*/\s*(\w+)\s*>,s', '</$1>', $string);

答案 1 :(得分:1)

请注意,正则表达式将解决这个问题。但只能防止标签中的空格。不会保护您免受进一步的HTML问题的影响。

这只会到目前为止,但您可以尝试像Simple HTML DOM这样的HTML解析器,它可以处理无效的HTML。然后你可以从库中清除HTML。

答案 2 :(得分:0)

尝试:

preg_replace('/<\s*\/\s*([^\s]*?)\s*>/', '</\\1>', $string);

现场演示:http://regexr.com?3444s