0

UI にテキスト領域があり、preg_replace を使用してユーザーが入力したすべての xml (html を含む) テキストを除外したいと考えています。私はそれについていくつかの助けが必要です。

例えば:

Emailed user sam at 12:15 PM
<details><email>sam@sam.com</email></details>

preg_replace の後:

Emailed user sam at 12:15 PM

これに加えて、preg_replace 正規表現へのポインタは素晴らしいでしょう。preg_replace でいくつかの Java 正規表現 (私は PHP を初めて使用します) を使用しようとしましたが、機能しないことがわかりました。私の正規表現が間違っていたのか、それとも preg_replace が別の種類の正規表現を使用しているのかはわかりません。

皆様のご協力に感謝いたします。

4

1 に答える 1

0

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

したがって、ほとんどの場合、次のようなものが機能します。

$str_out = preg_replace('/<[\/]{0,1}\w[^>]*>/g', '', $str_in);

'/<[\/]{0,1}\w[^>]*>/g'<name stuff> と </name stuff> の正規表現はどこにありますか。属性に > がある場合は失敗します (つまり<name blah=">hello">hello">

strip_tagsネイティブですが、高速になります。の引数は取り除かないものであることを忘れないstrip_tagsください


EDIT:タグ間のコンテンツも削除したい場合、その正規表現は ですが'/<\w[^>]*>[\s\S]*?<\/\w[^>]*>/g'、これはさらに多くの状況(つまり、ひどく閉じられた/ネストされたタグ)で失敗するため、最初にそれを実行してから、結果を確認します。

編集:つづり

于 2012-08-22T23:33:16.480 に答える