The second parameter to trim isn't a string as such, more a list of chars you want to strip from the start and end of the string. So, you're telling to strip all leading and trailing <, >, \, b and r characters.
Could try something like this regex to strip what you want from the front and end of a string...
//trim from start
$str=preg_replace('{^(?:<br />|</br>|\s+)+}', '', $str);
//trim from end
$str=preg_replace('{(?:<br />|</br>|\s+)+$}', '', $str);
Just to break down that first one...
- I've used
{} to delimit my regex, just so I don't need to escape the matches on backslashes which I'd have to if I used the 'normal' // delimiter
^ anchors the match to the start of the string
(?: ) is just a group of things we want to look for
- inside the group, we match either
<br />, </br> or any whitespace sequence \s+ - you can see each of these patterns is separated by | to indicate each is a possible alternative match
- the group is followed by
+ to indicate we want to find one or more matches of that group
The second one is similar, but anchored to the end of the string with $
<br />. It trims<'s thenb's, thenr's, then spaces, then/'s and finally>'s.trimmanual page.I wanted to remove all <br /> tags from the beginning and end of the string, so you don't want to remove thebrtags which was present at the middle?