0
Я использую это, чтобы очистить HTML от тега шрифта:PHP регулярное выражение исключает
$html = '<font class="textmiddle" color="red">toto</font>' ;
$clean = preg_replace('/<font[^>]*>/', '', $html) ;
$clean = preg_replace('/<\/font>/', '', $clean) ;
Он работает как шарм.
Но, когда HTML строка:
$html = '<font class="textmiddle" color="<%= color.importanttext %>">toto</font>' ;
Тогда результат не ожидаемым:
">toto
Это главный кандидат на [эта ссылка] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) (кому-то приходилось) - но во всей серьезности, почему вы обрабатываете необработанный ASP-код в PHP? – DaveRandom
Короче говоря, в то время как то, что вы хотите, можно сделать с помощью регулярного выражения, не делайте этого. Вместо этого напишите надежный надежный код, используя один из доступных синтаксических анализаторов xml/html. Проверьте это тоже: http://stackoverflow.com/questions/188414/best-xml-parser-for-php – FailedDev
@FailedDev скорее http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662 # 3577662, потому что этот aint XML. В любом случае, это, вероятно, дубликат. – Gordon