PHP 関数 preg_match_all を使用して、html コードの一部を見つけて別のものに置き換えたいと考えています。
これは私が見つける必要があるものです:
<attachfiles>
tag{link} attr{rel="stylesheet" type="text/css" media="screen"}
sources{
file1.css,
file2.css
}
</attachfiles>
それを見つける正規表現を作成しましたが、そのコードがhtml全体に1回存在する場合のみです。
私の正規表現は次のとおりです。
"|\<attachfiles\>(.*)\<\/attachfiles\>|s"
コードを 2 回以上繰り返すと、問題が発生します。正規表現は |s 演算子 (複数行) を使用するため、コードを複数回使用すると、最初のコードから最後までのすべての html コードが返されます。
例えば:
<attachfiles>
tag{link} attr{rel="stylesheet" type="text/css" media="screen"}
sources{
file1.css,
file2.css
}
</attachfiles>
... html code ...
... html code ...
<attachfiles>
tag{script} attr{type="text/css" language="javascript"}
sources{
file1.js,
file2.js
}
</attachfiles>
この場合の私の正規表現は、最初からすべてのコードを返します
<attachfiles> to the last </attachfiles>
含んでいる
... html code ...
... html code ...
それは私が探しているコードの間にあります。