Проблема (кроме попытки сопоставить HTML с регулярным выражением) заключается в том, что вы не правильно заключаете в кавычки выражение внутри строки, что обычно делается в PHP, как "/regex/"
, но вместо символа можно использовать любой символ косые черты, например "~regex~"
.
В вашем случае <
- это символ кавычки, который делает конечную кавычку >
(т.е. "<regex>"
), что делает его действительным в preg_*
и не дает никаких ошибок.
Например:
preg_replace('</form>', "", $str)
совпадает с
preg_replace('~/form~', "", $str)
и
preg_replace('/\/form/', "", $str)
Все они заменяют /form
пустой строкой.
Пока вы хотели:
preg_replace('~</form>~', "", $str)