1

私は WYSIWYG エディターを持っていますが、クライアントは Wordpress ショートコードのような類似のパターンを使用したいと考えています。

事実上、クライアントは次のようなことをしたいと考えています:

 [.class_name]
      /// Some content here
 [/close_container]

[/close_container] は str_replace() を使用して簡単に置き換えることができますが、使用するショートコードごとに class_name が変化するため ([.green_block] など)、最初にどうにかして green_block をキャプチャし、[.green_block] 全体を次のように置き換える必要があります。<div class='green_block'>クラスの事前定義されたリストがないため、これにアプローチする方法については少しわかりません。

何か案は?

4

3 に答える 3

1

使用する

$formated_string= preg_replace("/\[\.(\w\-\s)\]/", "$1", $entire_string);

シャローム...

于 2013-04-11T21:21:57.370 に答える
1

これは、まさに正規表現が最適な場合です。

$string = preg_replace('/\[\.(\w+)\]/i', '<div class="$1">', $string);
$string = str_replace('[/close_container]', '</div>', $string);

明らかに、上記にはエラーチェックがないため、不正な形式の html を非常に簡単に作成できます。ただし、追加の作業を行うことで、この問題を回避し、非常に安定したものを構築できます。

于 2013-04-11T21:24:11.973 に答える