2011-08-14 21 views
0

DrupalモジュールをQuoteという名前で変更しています。基本的に私はこれをオンにする:PHPを使用して文字列からBB型タグを取り除く

"ハローlorumイプサム[引用= randomuser1] [引用= user2の]言葉[/引用]こんにちは[/引用]こんにちはランダム:。!P" これに

「ハローlorumイプサムこんにちはランダム:P」

この操作を行うことができ、単純な正規表現があり、または私は他を含む[引用=ユーザー]テキストのループ記録場所のいくつかの並べ替えを考える必要があります[quote = user2] hello [/ quote] s [/ quote]?

どうもありがとうございました:)

+0

:=「」$のTMP; $ level = 0; ($ i = 0、$ l = strlen($ quote); $ i <$ l; $ i ++){ \t if(substr($ quote、$ i、7)== '[quote =')$]レベル++; \t if(substr($ quote、$ i-8,8)== '[/ quote]')$ level--; \t if($ level <1)$ tmp。= substr($ quote、$ i、1); } – felamaslen

答えて

0

代わりのループは、私はあなたが[タグ]と[/タグ]との間に何かを削除するために正規表現を使用することをお勧めします。これについてどのように:

$string = "hello lorum ipsum [quote=randomuser1][quote=user2]a word.[/quote] Hi there![/quote] Hi random :P"; 
$newString = preg_replace("^\[.*]\]*^","",$string); 

ザ・$ NEWSTRINGは今含まれています「ハローlorumイプサムこんにちはランダム:P」今、私は正規表現をまったく必要とせずに、一時的なソリューションを使用しているために

+0

ありがとうございます。私は実際に正規表現を理解していないので、角カッコをつけていない右角カッコがあるようです。唯一の問題は、置換えが正しく機能する前にすべての改行を取り除く必要があることです。 – felamaslen

+0

ああ待ってください。今では複数引用符が機能しません。 \ [quote =(\ w)+ \] [^ \ [\/quote \]] \ [\/quote \]を取り除くことができるだけです。すべての引用符を取り除く。しかし、正規表現は機能しません。 – felamaslen

関連する問題