2011-02-03 12 views
2

特定の文字列/パターンを検索して削除したいと考えています。パターンはで始まる:PHP - 間のコンテンツの検索と置換

<!DOCTYPE 

...で終わる:私はそれを削除し、これらの間何か他のものにしたい

]> 

。また、大文字と小文字を区別しないでください。

私はstr_replace()機能を試しましたが、コンテンツ間を削除しません。

ありがとうございました。

+0

あなたが試したことを示してください... –

+0

文字列が複数の行にまたがっていますか? – Arvin

+0

@Arvin:はい文字列は複数の行にまたがります。 –

答えて

4

これはpreg_replaceの使用例です。

$txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt); 

(.*?)がここに内最短の文字列に一致します。正規表現は、私たちの友人です。そして""が置き換えられます。

しかし、]>はターミネーターとして検索する正しい文字列ですか?

+0

助けてくれてありがとうMario。基本的に私は "<!ELEMENT ..."と "<!ATTLIST ..."を含む "<!DOCTYPE ...."を含むXMLファイルを取得しています。タグは ">>"で終わります。私はそれをすべてXMLファイルから取り除きたい。 –

+0

@水銀ターミナル:ああ。私はそれがDTDかHTMLのDOCTYPE宣言のためのものかどうかは不明でした。 - とにかく、時間があり、regexpsの有用性についてもっと知りたいのであれば、http://regular-expressions.info/またはここで素晴らしいツールの1つを試してみてください:http://stackoverflow.com/questions/ 89718/is-there-like-like-regexbuddy-in-the-open-source-world – mario

+0

ありがとうございました。今読んでください。 =) –