-1

mysql$commentsにいくつかのタグを含むテキストがあります。

echo $comments; 

//result is this

#John# Have a birthday <2.22.2013> [14-00] party /Club/ *Victoria*?

すべてのタグを表示せず、次のようなテキストを含むphpコードが必要です。

Have a birthday party ?

私が使用しているこのコードは、[]の間にテキストが含まれているだけで、他のタグからもテキストを非表示にしたい<> // ## $$ **()

                function replaceTags($startPoint, $endPoint, $newText, $source) {
                return preg_replace('#('.preg_quote($startPoint).')(.*)('.preg_quote($endPoint).')#si', '$1'.$newText.'$3', $source);
                }

                $source= $comments;
                $startPoint='[';
                $endPoint=']';
                $newText='';
                echo replaceTags($startPoint, $endPoint, $newText, $source);

ここで何を変更する必要がありますか?よろしく

4

1 に答える 1

0

正規表現を使用して、不要な部分を削除できます。

preg_replace('@#[^#]+#|<[^>]+>|\[[^\]]+]|/[^/]+/|*[^*]+*@', '', $foo);

それらはすべて、区切り文字とその間のテキストを一致させることで同様に機能します。

*[^*]+*

に分解できます

*      the starting *
[^*]   any character that is not a *
[^*]+  any run of non-* characters
*      the ending *

|そのパターンは、すべての区切り文字のペアに対して繰り返され、基本的に「これらのパターンのいずれかを何も置き換えない」という単一の大きな正規表現 (代替 ) に入れられます。

于 2013-02-26T09:12:29.123 に答える