0

Google 翻訳 API を使用しています。html文字列を送信しています。翻訳は正常に機能しますが、タグが台無しになっています。

例えば:

<b>Hello World</b>

になる

<b>Hello World</ b>

次のようなタグが返されることがあります。

<b>Hello World< / b >

PHPでの私の努力(それはうまくいきません)

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

3 に答える 3

1

あなたが使用することができます:

$string = preg_replace(',<\s*/\s*(\w+)\s*>,s', '</$1>', $string);
于 2013-03-13T18:14:57.557 に答える
1

正規表現はこの正確な問題を解決することに注意してください。ただし、タグ内のスペースに対してのみ保護します。今後の HTML の問題からあなたを守りません。

これは今のところしか機能しませんが、無効な HTML を処理するSimple HTML DOMのような HTML パーサーを試すことができます。次に、ライブラリからクリーンアップされた HTML を取得できます。

于 2013-03-13T18:16:48.893 に答える
0

試す:

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

ライブ デモ: http://regexr.com?3444s

于 2013-03-13T18:14:55.380 に答える