My guess is you had a working expression for a file path, and it stopped working when you tried to add the file name part.
preg_match()
requires a pair of delimiter characters to be specified; one at each end of the expression. It looks like you have these, but you've put an extra bit of the expression (ie the file name) at the end of the string outside of the delimiters. This is invalid.
"/([0-9]{4})\/([0-9]{2})\/([0-9]{2})/[.]+[.html]$"
^ ^
your start delimiter your end delimiter
You need to move the expression code [.]+[.html]$
that is currently after the end delimiter so that it is inside it.
That should solve the problem.