2016-04-14 4 views
-1

この特定のパターンはregex101でテストしていますが、私のコードではテストしていません。複数行正規表現はPHPではなく、オンラインで動作します

/(?s)%if_something%.*%endif_something%/ 

問題のコード:行動を返すことです期待

$text = "abc 
     %if_something% 
     <p>Content to potentially remove</p> 
     %endif_something% 
     123"; 

$regex = "/(?s)%if_something%.*%endif_something%/" 

preg_replace($regex, '', $text); 

"abc 
123" 

私は疑うregex101は、PHPの文字列と同じ空白や改行キャリッジを扱うが、それでも私のPHPの文字列から空白を削除していない、私はまだ試合を得ることはありません。

+0

残っているものは、今 'ABCの\ nは\ n123' – rock321987

+0

@ rock321987です – veksen

+1

これをチェックしてください: - http://ideone.com/PAIUJ6 – rock321987

答えて

2

コードは正常に動作します。しかし、彼らはあるので、あなたが返された値を保存しない

$text=preg_replace($regex, '', $text); 
^ 

Fiddle

出力

abc 

     123 

これらの空白があることもあり、いくつかの構文の問題があり、元の文字列に置き換えて、それらを何かに置き換えないでください。

1

置き換えの結果を何かに割り当てていないかのように見えます。あなたはそれが$テキストに終わるためにwan't場合は、それに結果を代入してください:

$text=preg_replace($regex, '', $text); 

よろしく

関連する問題