0

カスタム テンプレート システムのアウトコメント preg_replace 関数を作成しようとしています。

私は次のことを試しました:

// Outcomment
$pattern[] = "//*(.*?)/*/is";
$replace[] = "";

$content = preg_replace($pattern, $replace, $content);

しかし、preg_replace の仕組みを完全に理解しているかどうかはわかりません。

/*との間のすべてが削除されるようにしようとしています*/

4

2 に答える 2

2

これを試して:

$str = "Hello my name /* some comment */ is PHP /* and this comment*/ " ;       
$clean = preg_replace("/\/\*(.*?)\*\//", "", $str) ;

echo $clean ; //Outputs Hello my name is PHP
于 2013-02-17T11:44:36.117 に答える
1

まず、エスケープを考慮しなくても/*、式の両端にあるため、最後の方が逆になります。

次に、/*はどちらも正規表現の特殊文字であり、前にバックスラッシュを付けてエスケープする必要があります。

したがって、式は次のようになります。

"/\/\*(.*?)\*\//is"

それが役立つことを願っています。

最後に、コメントがネストされている場合、つまりコメント内にコメントがある場合、この式は失敗することに注意してください。これにより、マッチングが非常に難しくなります。

于 2013-02-17T11:41:45.327 に答える