Я хочу использовать функцию php preg_match_all, чтобы найти часть HTML-кода и заменить ее другой.
Вот что мне нужно найти:
<attachfiles>
tag{link} attr{rel="stylesheet" type="text/css" media="screen"}
sources{
file1.css,
file2.css
}
</attachfiles>
Я сделал регулярное выражение, которое находит его, но только если этот код присутствует один раз во всем HTML.
Мое регулярное выражение:
"|\<attachfiles\>(.*)\<\/attachfiles\>|s"
Проблема возникает, когда у меня есть код, чтобы найти повторяется два или более раз. Так как регулярное выражение использует оператор | 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 ...
между кодом, который я ищу.